fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. void solve() {
  5. int n, k;
  6. cin >> n >> k;
  7. vector<int> a(n + 1);
  8. for (int i = 1; i <= n; i++) {
  9. cin >> a[i];
  10. }
  11. if (n == k) {
  12. int ans = -1;
  13. for (int i = 2; i <= n; i += 2) {
  14. if (a[i] != i / 2) {
  15. ans = i / 2;
  16. break;
  17. }
  18. }
  19. if (ans == -1) {
  20. ans = n / 2 + 1;
  21. }
  22. cout << ans << endl;
  23. } else {
  24. int pos = -1;
  25. for (int i = 2; i <= n - k + 2; i++) {
  26. if (a[i] != 1) {
  27. pos = i;
  28. break;
  29. }
  30. }
  31. // cout << "pos: " << pos << endl;
  32. if (pos == -1) {
  33. int cur = 2;
  34. for (int i = n - k + 1; i <= n; i += 2) {
  35. if (a[i] != cur) {
  36. break;
  37. }
  38. cur++;
  39. }
  40. cout << cur << endl;
  41. } else {
  42. cout << 1 << endl;
  43. }
  44. }
  45.  
  46. }
  47.  
  48. int main() {
  49. int t;
  50. cin >> t;
  51. while (t--) solve();
  52. }
Success #stdin #stdout 0.01s 5288KB
stdin
4
3 2
1 1 1
8 8
1 1 2 2 3 3 4 4
5 4
1 1 1 2 2
5 4
1 1 1000000000 2 2
stdout
2
5
2
1