fork download
  1. #include<bits/stdc++.h>
  2. #include<vector>
  3. using namespace std;
  4.  
  5. int main(){
  6. int n,d;
  7. cin>>n;
  8. int nc=n;
  9. vector<int> vi;
  10. int flag=0,f1=0;
  11. while(n!=0)
  12. {
  13. d=n%10;
  14. vi.push_back(d);
  15. n/=10;
  16. }
  17. int i,sum=0;
  18. for(i=0;i<vi.size();i++){
  19. sum+=vi[i];
  20. }
  21. int rm=sum%3;
  22. if(rm==0){
  23. cout<<nc;
  24. return 0;
  25. }
  26. else if(rm==1){
  27. for(i=0;i<vi.size();i++){
  28. if(vi[i]%3==1&&vi.size()>1){
  29. vi.erase(vi.begin()+i);
  30. flag=1;
  31. break;
  32. }
  33. }
  34. }
  35. else{
  36. for(i=0;i<vi.size();i++){
  37. if(vi[i]%3==2&&vi.size()>1){
  38. vi.erase(vi.begin()+i);
  39. flag=1;
  40. break;
  41. }
  42. }
  43. if(flag==0){
  44. //cout<<"here";
  45. for(i=0;i<vi.size();i++){
  46. if(f1==0){
  47. if(vi[i]%3==1&&vi.size()>1){
  48. vi.erase(vi.begin()+i);
  49. f1=1;
  50. }
  51. }
  52. else{
  53.  
  54. if(vi[i]%3==1&&vi.size()>1){
  55. vi.erase(vi.begin()+i);
  56. flag=1;
  57. break;
  58. }
  59. }
  60. }
  61. }
  62. }
  63. if(flag==0)
  64. cout<<-1;
  65. else{
  66. for(i=vi.size()-1;i>=0;i--){
  67. if(vi.size()==1)
  68. break;
  69. if(vi[i]==0)
  70. vi.erase(vi.begin()+i);
  71. else break;
  72. }
  73. for(i=vi.size()-1;i>=0;i--){
  74. cout<<vi[i];
  75. }
  76. }
  77. return 0;
  78. }
  79.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
-1