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.  
  37. // swap vi tri cua mex va max cua k so dau
  38. int maxPos = 0;
  39. int mx = 0;
  40. int mexPos = 0;
  41. for (int i = 1; i <= k; i++) {
  42. if (a[i] >= mx) {
  43. mx = a[i];
  44. maxPos = i;
  45. }
  46. }
  47.  
  48. for (int i = 1; i <= n; i++) {
  49. if (a[i] == mex) {
  50. mexPos = i;
  51. break;
  52. }
  53. }
  54.  
  55. cout << maxPos <<" "<< mexPos << '\n';
  56. mp.clear();
  57. }
  58.  
  59. int main() {
  60.  
  61. int t;
  62. cin >> t;
  63. while(t--) {
  64. solve();
  65. }
  66.  
  67. return 0;
  68. }
Success #stdin #stdout 0s 5320KB
stdin
1
3 2
2 0 1
stdout
1 3