fork(2) download
  1. #include<iostream>
  2. #include<stdlib.h>
  3. #include<vector>
  4. #include<algorithm>
  5.  
  6. using namespace std;
  7. int main()
  8. {
  9. int t;
  10. cin>>t;
  11. while(t--)
  12. {
  13. long long n;
  14. cin>>n;
  15. int i,temp,f=0,min1,min2;
  16. int *p = (int*)malloc(sizeof(int)*n);
  17. for(i=0;i<n;i++)
  18. {
  19. cin>>p[i];
  20. }
  21. vector<int> s;
  22. vector<int>::iterator v;
  23. s.push_back(p[n-1]);
  24. for(i=n-2;i>=0;i--)
  25. {
  26. int l = s.size();
  27. if(p[i]>=s[l-1])
  28. {
  29. s.push_back(p[i]);
  30. }
  31. else
  32. {
  33. f = 1;
  34. break;
  35. }
  36. }
  37. if(f == 0)
  38. {
  39. cout<<"-1"<<endl;
  40. }
  41. else
  42. {
  43. min1 = *min_element(s.begin(),s.end());
  44. sort(s.begin(),s.end());
  45. s.push_back(p[i]);
  46. min2 = *min_element(s.begin(),s.end());
  47. if(min1!=min2)
  48. {
  49. v = s.begin();
  50. v++;
  51. sort(v,s.end());
  52. for(v = s.begin(); v!= s.end();v++)
  53. {
  54. p[i]=*v;
  55. i++;
  56. }
  57. }
  58. else
  59. {
  60. s.pop_back();
  61. int ele = s.back();
  62. p[i+1] = p[i];
  63. p[i] = ele;
  64. }
  65. for(i=0;i<n;i++)
  66. {
  67. cout<<p[i];
  68. }
  69. cout<<endl;
  70. }
  71. }
  72. return 0;
  73. }
Success #stdin #stdout 0s 4196KB
stdin
1
5
9 3 2 5 4
stdout
93425