思路
必败态:列数为奇数,且棋子左右对称。
必胜态:列数为偶数,且棋子左右对称。
当列数为奇数时,后手只要每次走到先手关于中间列的对称点,当先手第一次走到中间列时,后手就可以把它吃掉。原因:在先手第一次走到中间列前,由于中间列上存在绿兵,因此两个皇后不会被彼此吃掉。又因为左右两边的图形是对称的,如果先手下一步可以到达中间列,则后手下一步也可以到达,此时后手就可以吃掉先手。此外,由于左右两边拥有的绿兵个数相同,在第一次走到对称列之前,先手一定会先把一边的绿兵吃光,导致下一次必须走到对称列上。因此先手必败。
当列数为偶数时,先手只要先走到 $(1, 2)$,此时后 $n - 1$ 列棋子左右对称,且列数为奇数,是必败态,因此先手必胜。
时间复杂度 $O(1)$。
#include <iostream>
using namespace std;
int main() {
int n;
scanf("%d", &n);
if (n & 1) puts("black");
else puts("white\n1 2");
return 0;
}