fork download
  1. #include <bits/stdc++.h>
  2. #include <stdio.h>
  3. using namespace std;
  4. #define int long long
  5. #define dd double
  6. #define ld long double
  7. #define ull unsigned long long
  8. #define yes cout << "YES\n"
  9. #define no cout << "NO\n"
  10. #define el "\n"
  11. #define Arwa ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
  12. #define fix(x) cout << fixed << setprecision(x)
  13. #define all(v) v.begin(),v.end()
  14. #define mod 1000000007
  15. // checkprime
  16. bool prime(int n) {
  17. if (n == 2) return true;
  18. if (n % 2 == 0 || n == 1) return false;
  19. for (int i = 3; i * i <= n; i += 2)
  20. if (n % i == 0) return false;
  21. return true;
  22. }
  23. // Gcd
  24. int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
  25.  
  26. // divisors
  27. vector<int>divisors;
  28. void GetDivisors(int n)
  29. {
  30. for(int i=1;i*i<=n;i++)
  31. {
  32. if(n%i==0)
  33. {
  34. if(i==n/i)
  35. divisors.push_back(i);
  36. else
  37. {
  38. divisors.push_back(i);
  39. divisors.push_back(n/i);
  40. }
  41. }
  42. }
  43. sort(all(divisors));
  44. }
  45. int ConverttoDecimal(string s,int BaseFrom)
  46. {
  47. //1111000
  48. int decimal=0,power=0;
  49. for(int i=s.length()-1;i>=0;i--)
  50. {
  51. if(s[i]=='A')
  52. decimal+=10*pow(BaseFrom,power);
  53. else if(s[i]=='B')
  54. decimal+=11*pow(BaseFrom,power);
  55. else if(s[i]=='C')
  56. decimal+=12*pow(BaseFrom,power);
  57. else if(s[i]=='D')
  58. decimal+=13*pow(BaseFrom,power);
  59. else if(s[i]=='E')
  60. decimal+=14*pow(BaseFrom,power);
  61. else if(s[i]=='F')
  62. decimal+=15*pow(BaseFrom,power);
  63. else
  64. decimal+=(s[i]-'0')*pow(BaseFrom,power);
  65. power++;
  66. }
  67. return decimal;
  68. }
  69. string ConvertToBase(int decimal,int BaseTo)
  70. {
  71. string Res="";
  72. while(decimal!=0)
  73. {
  74. if(decimal%BaseTo==10)
  75. Res=Res+'A';
  76. else if(decimal%BaseTo==11)
  77. Res=Res+'B';
  78. else if(decimal%BaseTo==12)
  79. Res=Res+'C';
  80. else if(decimal%BaseTo==13)
  81. Res=Res+'D';
  82. else if(decimal%BaseTo==14)
  83. Res=Res+'E';
  84. else if(decimal%BaseTo==15)
  85. Res=Res+'F';
  86. else if(decimal%BaseTo==0)
  87. Res=Res+'0';
  88. else if(decimal%BaseTo==1)
  89. Res=Res+'1';
  90. else if(decimal%BaseTo==2)
  91. Res=Res+'2';
  92. else if(decimal%BaseTo==3)
  93. Res=Res+'3';
  94. else if(decimal%BaseTo==4)
  95. Res=Res+'4';
  96. else if(decimal%BaseTo==5)
  97. Res=Res+'5';
  98. else if(decimal%BaseTo==6)
  99. Res=Res+'6';
  100. else if(decimal%BaseTo==7)
  101. Res=Res+'7';
  102. else if(decimal%BaseTo==8)
  103. Res=Res+'8';
  104. else if(decimal%BaseTo==9)
  105. Res=Res+'9';
  106. decimal/=BaseTo;
  107. }
  108. string s="";
  109. for(int i=Res.length()-1;i>=0;i--)
  110. s=s+Res[i];
  111. return s;
  112. }
  113. void HereWeGoAgain()
  114. {
  115. }
  116. //اى ويل بريبير ماى بيبرز تو بى ذا بيست ان زيس وورلد
  117. int32_t main()
  118. {
  119. Arwa
  120. int t=1;
  121. string s;
  122. int BaseFrom,BaseTo;
  123. while(cin>>s>>BaseFrom>>BaseTo)
  124. {
  125. string x=(ConvertToBase(ConverttoDecimal(s,BaseFrom),BaseTo));
  126. cout<<right;
  127. if(x.length()>7)
  128. cout<<"ERROR\n";
  129. else cout<<x<<el;
  130. }
  131.  
  132. return 0;
  133. }
  134.  
  135.  
Success #stdin #stdout 0.01s 5296KB
stdin
Standard input is empty
stdout
Standard output is empty