fork download
  1. #include <algorithm>
  2. #include <iomanip>
  3. #include <iostream>
  4. #include <vector>
  5. #include <set>
  6. #include <numeric>
  7. #include <map>
  8. #include <unordered_map>
  9. using namespace std;
  10. #define all(a) a.begin(), a.end()
  11. #define ll long long
  12. #define fo(i,n) for (long long i = 0; i < n; i++)
  13. int main()
  14. {
  15. ll i,n,m,k,j;
  16. ios_base::sync_with_stdio(false);
  17. ll inputa,inputb, access;
  18. ll even = 1;
  19. ll even2 = 1;
  20. ll ans = -1;
  21. cin.tie(0); cout.tie(0);
  22. cin >> i;
  23. while (i--)
  24. {
  25. even = 1;
  26. ans = -1;
  27. even2 = 1;
  28. cin >> n >> k;
  29. vector<ll> nums(n);
  30. for (int j = 0; j < n; j++)
  31. {
  32. cin >> inputa;
  33. nums[j] = inputa;
  34. }
  35. access = n - k;
  36. if (access == 0)
  37. {
  38. for (int j = 1; j < n; j+= 2)
  39. {
  40. if (nums[j] != even)
  41. {
  42. ans = even;
  43. break;
  44. }
  45. even++;
  46. }
  47. if (ans == -1)
  48. {
  49. ans = n/2 + 1;
  50. }
  51. }
  52. else
  53. {
  54. for (int j = 0; j < n-access; j++)
  55. {
  56. if (j%2 != 1)
  57. {
  58. for (int k = j+1; k < j + access+2; k++)
  59. {
  60. if (nums[k] != even)
  61. {
  62. ans = even;
  63. j = n;
  64. break;
  65. }
  66. }
  67. }
  68. else
  69. {
  70. even2 = even;
  71. for (int k = j; k < k + 1 + access; k++)
  72. {
  73. if (nums[k] != even2)
  74. {
  75. ans = even2;
  76. j = n;
  77. break;
  78. }
  79. even2++;
  80. }
  81. even++;
  82. }
  83. }
  84. }
  85. if (ans == -1)
  86. {
  87. ans = even;
  88. }
  89. cout << ans << '\n';
  90. }
  91. }
Success #stdin #stdout 0s 5292KB
stdin
5
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
9 4
1 1 1 1 2 1 1 1 1
stdout
2
5
2
1
1