fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. const int oo = 1e2 + 2;
  5.  
  6. int n, k;
  7. int a[oo];
  8. map<int, int> mp;
  9.  
  10. void solve() {
  11. cin >> n >> k;
  12. for (int i = 1; i <= n; i++) {
  13. cin >> a[i];
  14. }
  15.  
  16. k = n - k + 1;
  17.  
  18. // tim mex cua k so dau
  19. int mex = 0;
  20. for (int i = 1; i <= k; i++) {
  21. mp[a[i]] = 1;
  22. }
  23.  
  24. for (int i = 0; i <= k; i++) {
  25. if (mp[i] != 1) {
  26. mex = i;
  27. break;
  28. }
  29. }
  30.  
  31. if (mex == k) {
  32. cout << -1 << '\n';
  33. return;
  34. }
  35.  
  36. // swap vi tri cua mex va max cua k so dau
  37. int maxPos = 0;
  38. int mx = 0;
  39. int mexPos = 0;
  40. for (int i = 1; i <= k; i++) {
  41. if (a[i] >= mx) {
  42. mx = a[i];
  43. maxPos = i;
  44. }
  45. }
  46.  
  47. for (int i = 1; i <= n; i++) {
  48. if (a[i] == mex) {
  49. mexPos = i;
  50. break;
  51. }
  52. }
  53.  
  54. cout << maxPos <<" "<< mexPos << '\n';
  55. }
  56.  
  57. int main() {
  58.  
  59. int t;
  60. cin >> t;
  61. while(t--) {
  62. solve();
  63. }
  64.  
  65. return 0;
  66. }
Success #stdin #stdout 0s 5320KB
stdin
3
5 1
0 1 2 3 4
3 2
2 0 1
5 2
0 2 1 4 3
stdout
-1
1 2
4 1