Advertisement
Guest User

Untitled

a guest
Apr 1st, 2020
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.76 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. #define RETN return 0;
  3. #define For(x, y) for(long long x = 0; x < y; x++)
  4. using namespace std;
  5. vector<int> p[9] = {
  6.     {0},
  7.     {0},
  8.     {0},
  9.     {4, 2},
  10.     {2},
  11.     {4, 2, 2},
  12.     {6, 2, 4, 0, 6, 4, 2, 4, 4, 4, 2, 4},
  13.     {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 },
  14.     {6, 6, 6, 4, 4, 6, 4, 6, 4, 6, 6, 6, 6, 6, 4, 8, 4, 8},
  15. };
  16. vector<int> q[9] = {
  17.     {0},
  18.     {0},
  19.     {0},
  20.     {4, 0, 0, 0, 4},
  21.     {2},
  22.     {4, 2, 4, 2, 2, 2, 4, 2, 4, 0},
  23.     {4},
  24.     {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},
  25.     {6, 6, 4, 8, 4, 8, 6}
  26. };
  27. vector<int> u[3] = {
  28.     {0},
  29.     {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},
  30.     {0}
  31. };
  32.  
  33. int f[9] = {0,0,0,0,0,26,0,270,36};
  34. int b[9] = {56,33,142,4,7,14,19,27, 32};
  35. int v[8] = {0,0,4,4,4,6,6,6};
  36. unsigned long long m, n, s, t, a, k;
  37. int main()
  38. {
  39.     cin >> m >> n;
  40.     if (m < 3 || n < 3) { cout << 0; RETN }
  41.     if (m == 3 && n == 4 || m == 4 && n == 3 || m == 3 && n == 3) { cout << 0; RETN }
  42.     if (n > p[m].size()) {
  43.         t = p[m][0];
  44.         for (long long i = 1; i < p[m].size(); i++) {t += p[m][i];}
  45.         long rep = 0;
  46.         a = ((n - (p[m].size()- 1) - 3) % p[m].size());
  47.         For(i, q[m].size()) {
  48.             if (a == 0 || a == -1) { break; }
  49.             t += q[m][i];
  50.             if (a == 1) { break; }
  51.             rep++;
  52.             if (i == q[m].size() - 1 && rep < a) {i = 0;}
  53.             if (rep == a || rep > a) { break; }
  54.         }
  55.         a = (f[m] * ((n - p[m].size() - 3) / p[m].size())*3);
  56.         cout << t + a; RETN
  57.     }
  58.     t = v[m - 1];for (long long i = 1; i < n - 3 + 1; i++) {t = t + p[m][i];}cout << t;
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement