Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- #include <algorithm>
- #include <math.h>
- #include <vector>
- #include <fstream>
- using namespace std;
- typedef unsigned long long ull;
- int main()
- {
- ull m, n, k = 0, num = 0;
- cin >> m >> n;
- long long D = pow(2, n);
- if (n == 1) {
- k = m / 2;
- } else if (n == 2) {
- for (ull i = 2; (ull)(log10(i)) <= n; i+=2) {
- if (i/10 > 0) {
- num = i;
- } else {
- num = (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- } else if (n == 3) {
- for (ull i = 4; (ull)(log10(i)) <= n; i+=2) {
- if (i/100 > 0) {
- num = i;
- } else if (i/10 > 0) {
- num = (i-1)*100 + i;
- } else {
- num = (i-2)*100 + (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- } else if (n == 4) {
- for (ull i = 4; (ull)(log10(i)) <= n; i+=2) {
- if (i/1000 > 0) {
- num = i;
- } else if (i/100 > 0) {
- num = (i-1)*1000 + i;
- } else if (i/10 > 0) {
- num = (i-1)*100 + i;
- } else {
- num = (i-3)*1000 + (i-2)*100 + (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- } else if (n == 5) {
- for (ull i = 4; (ull)(log10(i)) <= n; i+=2) {
- if (i/10000 > 0) {
- num = i;
- } else if (i/1000 > 0) {
- num = (i-1)*10000 + i;
- } else if (i/100 > 0) {
- num = (i-1)*1000 + i;
- } else if (i/10 > 0) {
- num = (i-2)*10000 + (i-1)*100 + i;
- } else {
- num = (i-4)*10000 + (i-3)*1000 + (i-2)*100 + (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- } else {
- for (ull i = 4; (ull)(log10(i)) <= n; i+=2) {
- if (i / 100000) {
- num = i;
- } else if (i / 10000) {
- num = (i - 1) % 10 * 10 + i;
- } else if (i / 1000) {
- num = (i - 1) % 100 * 10000 + i;
- } else if (i / 100) {
- num = (i-1)*1000 + i;
- } else if (i / 10) {
- num = (i-2)*10000 + (i-1)*100 + i;
- } else {
- num = (i/10000)*100000 + (i-4)*10000 + (i-3)*1000 + (i-2)*100 + (i-1)*10 + i;
- }
- if (num % D == 0) k++;
- }
- }
- cout << k;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement