fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. int main(){
  5. int t;
  6. cin >> t;
  7. while(t--){
  8. int n;
  9. cin >> n;
  10.  
  11. vector<int>vec(n);
  12. for(int i=0; i< n; ++i) {
  13. cin >> vec[i];
  14. }
  15.  
  16. unordered_map<int,int> mp;
  17. for(int i=0; i<vec.size(); ++i) {
  18. mp[vec[i]]++;
  19. }
  20.  
  21. bool flag = true;
  22. for(int i=1; i<vec.size(); ++i) {
  23. if(mp[vec[i]] == 1) {
  24. flag = false;
  25. break;
  26. }
  27. }
  28.  
  29. if(!flag) {
  30. cout << -1 << endl;
  31. continue;
  32. }
  33.  
  34. vector<int> ans;
  35.  
  36. int i = 0, j = 0;
  37. while(i < vec.size()) {
  38. while(j < vec.size() && vec[i] == vec[j]) j++;
  39.  
  40. ans.push_back(j-1);
  41. for(int k = i; k<j-1; ++k) {
  42. ans.push_back(k);
  43. }
  44. i=j;
  45. }
  46.  
  47. for(int i=0; i<ans.size(); ++i) {
  48. cout << ans[i] << " ";
  49. }
  50. cout << endl;
  51.  
  52.  
  53.  
  54. }
  55.  
  56. }
  57.  
Success #stdin #stdout 0s 5312KB
stdin
2
5
1 1 1 1 1
6
3 6 8 13 15 21
stdout
4 0 1 2 3 
-1