fork download
  1. #include <iostream>
  2. #include <stack>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. int main() {
  7. // your code goes here
  8. int T;
  9. cin>>T;
  10. while(T--){
  11. int N;
  12. cin>>N;
  13. vector <int> v;
  14. for(int i=0;i<N;i++){
  15. int temp;
  16. cin>>temp;
  17. v.push_back(temp);
  18. }
  19. int i=N-2;
  20. int last = v[N-1];
  21. stack <int> st;
  22. st.push(last);
  23. v.pop_back();
  24. for(i;i>=0;i--){
  25. if(v[i]<st.top()){
  26. int temp = v[i];
  27. v.pop_back();
  28. v.push_back(st.top());
  29. st.pop();
  30. st.push(temp);
  31. break;
  32. }
  33. else{
  34. st.push(v[i]);
  35. v.pop_back();
  36. }
  37.  
  38. }
  39. if(st.top() == last){
  40. cout<<"-1"<<endl;
  41. break;
  42. }
  43. st.push(v[i]);
  44. v.pop_back();
  45.  
  46.  
  47. while(!st.empty()){
  48. v.push_back(st.top());
  49.  
  50. st.pop();
  51. }
  52. for(int j=0;j<N;j++){
  53. cout<<v[j];
  54. }
  55. cout<<endl;
  56. }
  57. return 0;
  58. }
Success #stdin #stdout 0s 5532KB
stdin
Standard input is empty
stdout
-1