根据博弈论的两条规则:
- 一个状态是必胜状态当且仅当有一个后继是必败状态
- 一个状态是必败状态当且仅当所有后继都是必胜状态
然后很容易发现从1开始,前p个状态是必败状态,后面q个状态是必胜状态,然后循环往复。
1 #include <cstdio> 2 3 int main() 4 { 5 int n, p, q; 6 while(scanf("%d%d%d", &n, &p, &q) == 3) 7 printf("%s\n", (n-1)%(p+q)<p ? "LOST" : "WIN"); 8 9 return 0; 10 }