Advertisement
IISergeyII

Untitled

May 21st, 2018
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.34 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <algorithm>
  4. #include <math.h>
  5. #include <vector>
  6. #include <fstream>
  7.  
  8. using namespace std;
  9. /*
  10. long long len(long long n)
  11. {
  12.  
  13.    if (n < 100000) {
  14.             if (n < 100) {
  15.                 if (n < 10) {
  16.                     return 1;
  17.                 } else {
  18.                     return 2;
  19.                 }
  20.             } else {
  21.                 if (n < 1000) {
  22.                     return 3;
  23.                 } else {
  24.                     if (n < 10000) {
  25.                         return 4;
  26.                     } else {
  27.                         return 5;
  28.                     }
  29.                 }
  30.             }
  31.         } else {
  32.             if (n < 10000000) {
  33.                 if (n < 1000000) {
  34.                     return 6;
  35.                 } else {
  36.                     return 7;
  37.                 }
  38.             } else {
  39.                 if (n < 100000000) {
  40.                     return 8;
  41.                 } else {
  42.                     if (n < 1000000000) {
  43.                         return 9;
  44.                     } else {
  45.                         return 10;
  46.                     }
  47.                 }
  48.             }
  49.         }
  50. }
  51.  
  52. long long getSnum(long long a)
  53. {
  54.     long long res = a;
  55.     long long L = len(a);
  56.     long long t = 0;
  57.  
  58.     string s;
  59.     for (long long i = a-1; (i >= 1) && (L < 6) ; i--)
  60.     {
  61.         long long st = len(res);
  62.         t = i * pow(10, st);
  63.         if (t % 10 != 0) t++;
  64.  
  65.         //cout << "t" << t << " * " << i * pow(10, s.length()) << endl;
  66.         //cout << "s len " << s.length() << " res " << res << " t " << t << endl;
  67.         res = t + res;
  68.         L += st;
  69.         //cout << "s " << s << " res " << res << " i " << i << " L " << L << endl;
  70.  
  71.     }
  72.     return res;
  73. }
  74. */
  75.  
  76. int main()
  77. {
  78.     /*long long a, n;
  79.     cin >> a >> n;
  80.     cout << getSnum(a, n);*/
  81.  
  82.     long long k = 0;
  83.     long long M, N;
  84.     cin >> M >> N;
  85.  
  86.     long long num = 0;
  87.  
  88.     long long D = pow(2, N);
  89.  
  90.     /*for (long long i = 2; i <= M; i += 2)
  91.     {
  92.         num = getSnum(i);
  93.         //cout << "i" << i << " " << num << endl;
  94.         if (num % D == 0) k++;
  95.     }*/
  96.  
  97.     if (N == 1) {
  98.         k = M/2;
  99.     } else if (N == 2) {
  100.         for (long long i = 2; i <= M; i+=2) {
  101.             if (i/10 > 0) {
  102.                 num = i;
  103.             } else {
  104.                 num = (i-1)*10 + i;
  105.             }
  106.             if (num % D == 0) k++;
  107.  
  108.         }
  109.     } else if (N == 3) {
  110.         for (long long i = 4; i <= M; i+=2) {
  111.             if (i/100 > 0) {
  112.                 num = i;
  113.             } else if (i/10 > 0) {
  114.                 num = (i-1)*100 + i;
  115.             } else {
  116.                 num = (i-2)*100 + (i-1)*10 + i;
  117.             }
  118.             if (num % D == 0) k++;
  119.  
  120.         }
  121.     } else if (N == 4) {
  122.         for (long long i = 4; i <= M; i+=2) {
  123.             if (i/1000 > 0) {
  124.                 num = i;
  125.             } else if (i/100 > 0) {
  126.                 num = (i-1)*1000 + i;
  127.             } else if (i/10 > 0) {
  128.                 num = (i-1)*100 + i;
  129.             } else {
  130.                 num = (i-3)*1000 + (i-2)*100 + (i-1)*10 + i;
  131.             }
  132.             if (num % D == 0) k++;
  133.  
  134.         }
  135.     } else if (N == 5) {
  136.         for (long long i = 4; i <= M; i+=2) {
  137.             if (i/10000 > 0) {
  138.                 num = i;
  139.             } else if (i/1000 > 0) {
  140.                 num = (i-1)*10000 + i;
  141.             } else if (i/100 > 0) {
  142.                 num = (i-1)*1000 + i;
  143.             } else if (i/10 > 0) {
  144.                 num = (i-2)*10000 + (i-1)*100 + i;
  145.             } else {
  146.                 num = (i-4)*10000 + (i-3)*1000 + (i-2)*100 + (i-1)*10 + i;
  147.             }
  148.  
  149.             if (num % D == 0) k++;
  150.  
  151.         }
  152.     } else {
  153.         for (long long i = 4; i <= M; i+=2) {
  154.             if (i/100000 > 0) {
  155.                 num = i;
  156.             } else if (i/10000 > 0) {
  157.                 num = (i-1)*100000 + i;
  158.             } else if (i/1000 > 0) {
  159.                 num = (i-1)*10000 + i;
  160.             } else if (i/100 > 0) {
  161.                 num = (i-1)*1000 + i;
  162.             } else if (i/10) {
  163.                 num = (i-2)*10000 + (i-1)*100 + i;
  164.             } else {
  165.                 num = (i-5)*100000 + (i-4)*10000 + (i-3)*1000 + (i-2)*100 + (i-1)*10 + i;
  166.             }
  167.  
  168.             if (num % D == 0) k++;
  169.  
  170.         }
  171.     }
  172.  
  173.     cout << k;
  174.  
  175.     return 0;
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement