//90pts
#include<bits/stdc++.h>
using namespace std;
int sg[200 + 10][200 + 10], n, m, T;
bool f[200 + 10];
int SG(int n, int m) {
if (sg[n][m] != -1) return sg[n][m];
memset(f, 0, sizeof f);
for (int i = 2; i <= n - 2; ++i) f[SG(i, m) ^ SG(n - i, m)] = 1;
for (int i = 2; i <= m - 2; ++i) f[SG(n, i) ^ SG(n, m - i)] = 1;
for (int i = 0;; ++i) if (!f[i]) return sg[n][m] = i;
}
int main() {
ios_base::sync_with_stdio(false);
memset(sg, -1, sizeof sg);
sg[2][2] = sg[3][2] = sg[2][3] = 0;
while (cin >> n >> m) {
cout << (SG(n, m) ? "WIN" : "LOSE") << endl;
}
return 0;
}
/*100pts
#include<bits/stdc++.h>
using namespace std;
int sg[200 + 10][200 + 10], n, m, T;
int SG(int n, int m) {
if (sg[n][m] != -1) return sg[n][m];
bool f[200 + 10];
memset(f, 0, sizeof f);
for (int i = 2; i <= n - 2; ++i) f[SG(i, m) ^ SG(n - i, m)] = 1;
for (int i = 2; i <= m - 2; ++i) f[SG(n, i) ^ SG(n, m - i)] = 1;
for (int i = 0;; ++i) if (!f[i]) return sg[n][m] = i;
}
int main() {
ios_base::sync_with_stdio(false);
memset(sg, -1, sizeof sg);
sg[2][2] = sg[3][2] = sg[2][3] = 0;
while (cin >> n >> m) {
cout << (SG(n, m) ? "WIN" : "LOSE") << endl;
}
return 0;
}
*/
这两份代码之间只有 f 数组定义的位置不同,那么我每次都 memset 了呀,哪里错了?