Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- #define RETN return 0;
- #define For(x, y) for(long long x = 0; x < y; x++)
- using namespace std;
- vector<int> p[9] = {
- {0},
- {0},
- {0},
- {4, 2},
- {2},
- {4, 2, 2},
- {6, 2, 4, 0, 6, 4, 2, 4, 4, 4, 2, 4},
- {6, 4, 4, 4, 6, 2, 6, 4, 6, 2, 4, 6, 4, 4, 4, 6, 2, 6, 4, 4, 6, 4, 2, 6, 6, 2, 4, 6, 4, 2, 6, 4, 4, 4, 6, 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, 6, 4, 4, 4, 4, 6, 2, 4, 6, 4, 4, 4 },
- {6, 6, 6, 4, 4, 6, 4, 6, 4, 6, 6, 6, 6, 6, 4, 8, 4, 8},
- };
- vector<int> q[9] = {
- {0},
- {0},
- {0},
- {4, 0, 0, 0, 4},
- {2},
- {4, 2, 4, 2, 2, 2, 4, 2, 4, 0},
- {4},
- {6, 4, 4, 4, 6, 2, 6, 4, 6, 2, 4, 6, 4, 4, 4, 6, 2, 6, 4, 4, 6, 4, 2, 6, 6, 2, 4, 6, 4, 2, 6, 4, 4, 4, 6, 4, 4, 4, 4, 6, 4, 4, 4, 4, 4, 4, 4, 6, 4, 4, 4, 4, 6, 4, 4, 4, 4, 6, 2, 4, 6, 4, 4, 4},
- {6, 6, 4, 8, 4, 8, 6}
- };
- vector<int> u[3] = {
- {0},
- {4,4,4,6,2,4,6,4,4,4,4,4,4,6,4,4,4,4,6,4,4,4,4,4,4,4,6,4,4,4,4,6},
- {0}
- };
- int f[9] = {0,0,0,0,0,26,0,270,36};
- int b[9] = {56,33,142,4,7,14,19,27, 32};
- int v[8] = {0,0,4,4,4,6,6,6};
- unsigned long long m, n, s, t, a, k;
- int main()
- {
- cin >> m >> n;
- if (m < 3 || n < 3) { cout << 0; RETN }
- if (m == 3 && n == 4 || m == 4 && n == 3 || m == 3 && n == 3) { cout << 0; RETN }
- if (n > p[m].size()) {
- t = p[m][0];
- for (long long i = 1; i < p[m].size(); i++) {t += p[m][i];}
- long rep = 0;
- a = ((n - (p[m].size()- 1) - 3) % p[m].size());
- For(i, q[m].size()) {
- if (a == 0 || a == -1) { break; }
- t += q[m][i];
- if (a == 1) { break; }
- rep++;
- if (i == q[m].size() - 1 && rep < a) {i = 0;}
- if (rep == a || rep > a) { break; }
- }
- a = (f[m] * ((n - p[m].size() - 3) / p[m].size())*3);
- cout << t + a; RETN
- }
- t = v[m - 1];for (long long i = 1; i < n - 3 + 1; i++) {t = t + p[m][i];}cout << t;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement