Advertisement
Guest User

Untitled

a guest
Jul 24th, 2020
337
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.65 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int dp[100][100][2][2];
  6. bool seen[100][100][2][2];
  7.  
  8. int Wins(int a, int b, int c, int d) {
  9.   if (seen[a][b][c][d]) return dp[a][b][c][d];
  10.   if (a == 0 && b == 0) {
  11.     if (c > d) return 1;
  12.     if (c == d) return 0;
  13.     return -1;
  14.   }
  15.   int ans = -1;
  16.   if (a > 0) ans = max(ans, -Wins(a - 1, b, d, !c));
  17.   if (b > 0) ans = max(ans, -Wins(a, b - 1, d, c));
  18.   seen[a][b][c][d] = true;
  19.   return dp[a][b][c][d] = ans;
  20. }
  21.  
  22. int main() {
  23.   for (int a = 0; a <= 20; ++a) {
  24.     for (int b = 0; b <= 20; ++b) {
  25.       if (Wins(a, b, 0, 0) == -1) {
  26.         cout << a << " " << b << endl;
  27.       }
  28.     }
  29.   }
  30. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement