Advertisement
webeseit

Untitled

Mar 20th, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. #define ll long long
  5.  
  6. ll get(ll a) {
  7. if (a >= 0 && a <= 3) {
  8. return 1;
  9. } else if (a >= 4 && a <= 5) {
  10. return 2;
  11. } else if (a == 6) {
  12. return 3;
  13. } else if (a >= 7 && a <= 8) {
  14. return 4;
  15. } else if (a == 9) {
  16. return 5;
  17. }
  18. }
  19.  
  20. int main() {
  21. ll n, m;
  22. cin >> m;
  23. for (int i = 0; i < m; ++i) {
  24. cin >> n;
  25. ll t = n;
  26. ll last = n;
  27. ll k = 0;
  28. while (t) {
  29. if (t/10==0) {
  30. last = t;
  31. }
  32. t /= 10;
  33. ++k;
  34. }
  35. if (k==0) k = 1;
  36. ll ans = 5;
  37. ll tmp = 5;
  38. for (ll i = 2; i < k; ++i) {
  39. ans += 4*tmp;
  40. tmp *= 5;
  41. }
  42.  
  43. if (k == 1) {
  44. ans = get(n);
  45. } else {
  46. if (last >= 5 && last <= 6) {
  47. ans += tmp;
  48. } else if (last == 7) {
  49. ans += 2*tmp;
  50. } else if (last >= 8 && last <= 9) {
  51. ans += 3*tmp;
  52. }
  53.  
  54. if (last == 4 || last == 6 || last == 7 || last == 9) {
  55. ll tmp1 = 1, tmp2 = 1;
  56. ll sum = 0;
  57. while (true) {
  58. if (n / 10 == 0) {
  59. break;
  60. }
  61. sum += (get(n%10)-1)*tmp1;
  62. if (n/100 != 0) tmp2 *= get(n%10);
  63.  
  64. n /= 10;
  65. }
  66. //cout << "sum: " << sum << '\n';
  67. ans += sum+tmp2;
  68. }
  69. }
  70. cout << ans << '\n';
  71. }
  72. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement