fork(6) download
  1. #include<bits/stdc++.h>
  2. #define loop(i,a,b) for(int i=a;i<b;i++)
  3. #define loopb(i,a,b) for(int i=a;i>=b;i--)
  4. #define loopm(i,a,b,step) for(int i=a;i<b;i+=step)
  5. #define loopbm(i,a,b,step) for(int i=a;i>=b;i-=step)
  6. #define pb(a) push_back(a)
  7. #define mp(a,b) make_pair(a,b)
  8. #define init(arr,val) memset(arr,val,sizeof(arr))
  9. #define INF 1000000007
  10. #define MOD 1000000007
  11. #define BINF 1000000000000000001
  12. #define int long long int
  13. #define double long double
  14.  
  15. using namespace std;
  16.  
  17. #undef int
  18. int main()
  19. {
  20. #define int long long int
  21. ios_base::sync_with_stdio(false);
  22. cin.tie(NULL);
  23. cout.tie(NULL);
  24. int t;
  25. cin>>t;
  26. while(t--)
  27. {
  28. string a;
  29. cin>>a;
  30. int sum=0;
  31. int n=a.size();
  32.  
  33. int arr[n];
  34. loop(i,0,n)
  35. {
  36. sum+=(int)(a[i]-48);
  37. arr[i]=(int)(a[i]-48);
  38. }
  39.  
  40. int f=0,pos=-1;
  41. if(arr[n-1]%2!=0)
  42. {
  43. if(arr[n-2]%2==0 and (sum-arr[n-1])%3==0)
  44. {
  45. f=1;
  46. pos=n-1;
  47. }
  48. }
  49. else
  50. {
  51.  
  52. int p=0;
  53. loop(i,0,n)
  54. {
  55. if(i<n-1 or (i==n-1 and arr[i-1]%2==0)){
  56. if((sum-arr[i])%3==0)
  57. {
  58. if(arr[i+1]>arr[i])
  59. {
  60. pos=i;
  61. f=1;
  62. break;
  63.  
  64. }
  65. else if(arr[i+1]==arr[i])
  66. {
  67. f=1;
  68. pos=i;
  69. p=1;
  70. }
  71. else if((arr[i+1]<arr[i]) and p==0)
  72. {
  73. f=1;
  74. pos=i;
  75. }
  76. }
  77. }
  78.  
  79. }
  80. }
  81. if(f==0)
  82. cout<<-1;
  83. else
  84. {
  85. if(pos==-1)
  86. cout<<a;
  87. else
  88. {
  89. loop(i,0,n)
  90. {
  91. if(i!=pos)
  92. cout<<arr[i];
  93. }
  94. }
  95. }
  96.  
  97. cout<<endl;
  98.  
  99.  
  100.  
  101.  
  102. }
  103. return 0;
  104. }
Success #stdin #stdout 0s 15240KB
stdin
2
668
663
stdout
66
66