这个判断n子棋的输赢程序如何用c++代码打?

求思路+程序;
这个判断n子棋的输赢程序如何用c++代码打?
n 子棋 - 题库 - 计蒜客 题号:T2996;知识点:C风格输入输出题单;难度:普及T1;小 A 和小 B 在玩 $n$ 子棋, $n$ 子棋游戏的规则是,两人在一个左上角是 $(1,1)$,右下角是 $(n,n)$ 的 $n \times n$ 棋盘中交替落子,只要有一方的 $n$ 个棋子在同一行或者同一列或者同一条对角线 https://nanti.jisuanke.com/t/T2996
img

img

img


#include<bits/stdc++.h>
using namespace std;
const int N=100000+100;
int n,m,x,y;
int a[N]={0},b[N]={0},cnt1=0,cnt2=0;
int f=1;
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++,f=-f)
    {
        cin>>x>>y;
        a[x]+=f;
        b[y]+=f;
        if(x==y)
            cnt1+=f;
        if(x==n-y+1)
            cnt2+=f;
        if(abs(a[x])==n||abs(b[y])==n||abs(cnt1)==n||abs(cnt2)==n)
        {    cout<<i<<" ";
            if(f==1)    cout<<"milk!"<<endl;
             else cout<<"juice!"<<endl;
              return 0;
        }
    }
    cout<<m<<" "<<"drawn!"<<endl;
    return 0;
}