fork(3) download
  1. #include<cstdio>
  2. #include<algorithm>
  3. using namespace std;
  4. int main()
  5. {
  6. char a[1000000];
  7. int t,n,i;
  8. scanf("%d ",&t);
  9. while(t-->0)
  10. {
  11. scanf("%d",&n);
  12. for(i=0;i<n;i++)
  13. {
  14. scanf(" %c",&a[i]);
  15. }
  16. //for(i=0;i<n;i++)
  17. // printf("%c",a[i]);
  18. // printf("\n");
  19. if(n==1)
  20. printf("-1\n");
  21. else
  22. {
  23. for(i=n-2;i>=0;i--)
  24. {
  25. if(a[i]<a[i+1])
  26. break;
  27. }
  28. }
  29. if(i<0)
  30. printf("-1\n");
  31. else
  32. {
  33. //printf("%d\n",i);
  34. char temp=a[i];
  35. for(int j=n-1;j>i;j--)//finding highest index j such that a[j]>a[i]
  36. {
  37. if(a[i]<a[j])
  38. {
  39. //printf("%d\n",j);
  40. a[i]=a[j];
  41. a[j]=temp; //swapping a[j] & a[i]
  42. // printf("%c%c\n",a[i],a[j]);
  43. }
  44. }
  45. }
  46. //for(i=0;i<n;i++) this step was giving run time error
  47. //printf("%c",a[i]);
  48. printf("\n");
  49. sort(a+i+1,a+n);
  50. for(int j=0;j<n;j++)printf("%d",a[j]);
  51. printf("\n");
  52. }
  53. return 0;
  54. }
Success #stdin #stdout 0s 3992KB
stdin
2

5

1 5 4 8 3

10

1 4 7 4 5 8 4 1 2 6
stdout
4953565152

49525552535652495450