fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #pragma region Macros
  5. #define Faster ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
  6. #define ll long long
  7. #define ld long double
  8. #define pii pair<int, int>
  9. #define pll pair<long long, long long>
  10. #define all(x) x.begin(), x.end()
  11. #define rall(x) x.rbegin(), x.rend()
  12. #define pb push_back
  13. #define ff first
  14. #define ss second
  15. #define endl '\n'
  16. #define yes cout << "YES" << endl
  17. #define no cout << "NO" << endl
  18. #define m1 cout << -1 << endl
  19. #pragma endregion
  20.  
  21. #pragma region Math
  22. const ll MOD = 1e9 + 7;
  23. ll gcd(ll a, ll b) { return __gcd(a, b); }
  24. ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; }
  25. #pragma endregion
  26.  
  27. void solve() {
  28. int n; cin>>n;
  29. vector<int>v(n);
  30. map<int, int>mp;
  31. for(int i=0;i<n;i++){
  32. int x; cin>>x;
  33. mp[x]++;
  34. v[i]=x;
  35. }
  36. int freq=0;
  37. for(auto x:mp){
  38. freq+= x.first;
  39. }
  40.  
  41. if(freq>n){
  42. cout<<-1<<endl;
  43. return;
  44. }
  45. int val=1;
  46. for(auto x:mp){
  47. mp[x.first]=val;
  48. val++;
  49. }
  50. for(int i=0;i<n;i++){
  51. cout<<mp[v[i]]<<" ";
  52. }
  53. cout<<endl;
  54. }
  55.  
  56. int main() {
  57. Faster;
  58. int t = 1;
  59. cin >> t;
  60. while (t--) solve();
  61. return 0;
  62. }
Success #stdin #stdout 0s 5320KB
stdin
3
4
1 2 3 4
6
1 2 2 3 3 3
6
6 6 6 6 6 6
stdout
-1
1 2 2 3 3 3 
1 1 1 1 1 1