fork download
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. struct s_number
  6. {
  7. int base;
  8. char k=0;
  9. };
  10. typedef struct s_number number;
  11.  
  12. int digitsum(int x);
  13.  
  14. int main()
  15. {
  16. // freopen("input.txt","r",stdin);
  17. // freopen("output.txt","w",stdout);
  18. int i, min, max, delta, MIN_N, a;
  19. cin>>min>>max;
  20. if(min>100)
  21. MIN_N=min-102;
  22. else
  23. MIN_N=0;
  24. delta=max-MIN_N;
  25. vector<number> x(delta+1);
  26. for(i=MIN_N;i<=max;i++){
  27. a=digitsum(i);
  28. if(a>=min && a<=max){
  29. x[a-MIN_N].base=i;
  30. x[a-MIN_N].k++;
  31. }
  32. }
  33.  
  34. for(i=min-MIN_N;i<=delta;i++){
  35. if(x[i].k==0)
  36. cout<<"IMPOSSIBLE"<<"\n";
  37. else if(x[i].k==1)
  38. cout<<x[i].base<<"\n";
  39. else
  40. cout<<"AMBIGUOUS"<<"\n";
  41. }
  42. return 0;
  43. }
  44.  
  45. int digitsum(int x)
  46. {
  47. if(x<10)
  48. return x;
  49. int c, y;
  50. c=0;
  51. y=x;
  52. while(y>9){
  53. c+=y%10;
  54. y/=10;
  55. }
  56. return x+digitsum(c+y);
  57. }
Success #stdin #stdout 0.01s 5292KB
stdin
127 128
stdout
122
IMPOSSIBLE