fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int main() {
  4.  
  5. int t;
  6. cin >> t;
  7.  
  8. while(t--){
  9. int n;
  10. cin >> n;
  11. int arr[n];
  12. for(int i=0;i<n;i++){
  13. cin >> arr[i];
  14. }
  15. stack<int> s;
  16.  
  17. s.push(n-1);
  18. int i;
  19. for(i=n-2;i>=0;i--){
  20. if(arr[i]>=arr[s.top()]){
  21. s.push(i);
  22. }else{
  23. break;
  24. }
  25. }
  26. if(i==-1){
  27. cout << "-1\n";
  28. }else{
  29. int index = i+1;
  30. while(!s.empty()&&arr[s.top()]>=arr[i]){
  31. index = s.top();
  32. s.pop();
  33. }
  34. swap(arr[i],arr[index]);
  35. sort(arr+i+1,arr+n);
  36. for(int i=0;i<n;i++){
  37. cout << arr[i];
  38. }
  39. cout << endl;
  40. }
  41. }
  42.  
  43.  
  44. return 0;
  45. }
  46.  
Success #stdin #stdout 0s 15240KB
stdin
2
5
1 5 4 8 3
10
1 4 7 4 5 8 4 1 2 6
stdout
15834
1474584162