一道五子棋判定胜负的题
这是一道五子棋判定胜负得题,棋盘19*19,黑子先下,1代表黑子2代表白子,我实在不知道哪里错了!总是wronganswer,向各位大神求救!(题目链接http://acm.tju.)
#include<iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int prox[5]={0,0,1,1,-1};
int proy[5]={0,1,0,1,1};
for(int i=1;i<=n;i++)
{
int point[20][20];
int blacknum=0,whitenum=0,test=0,winner=0,x=0,y=0;
for(int a=1;a<20;a++)
{
for(int b=1;b<20;b++)
{
cin>>point[a][b];
if(point[a][b]==1)
{
blacknum++;
}
if(point[a][b]==2)
{
whitenum++;
}
}
}
test=(blacknum>whitenum)?1:2;
for(int a=1;a<20;a++)
{
for(int b=1;b<20;b++)
{
if(point[a][b]==test)
{
int count=1;
int c=0,d=0;
for(int i=1;i<=4;i++)
{
if(point[a-i][b-i]!=test)
{
for(c=a+i,d=b+i;point[c][d]==test&&c>=1&&c<=19&&d<=19&&d>=1;c=c+i,d=d+i)
{
count++;
}
if(count==5)
{
x=a;
y=b;
winner=test;
break;
}
}
}
}
if(winner==test)
{
break;
}
}
if(winner==test)
{
break;
}
}
if(winner==test)
{
cout<<winner<<endl;
cout<<x<<" "<<y<<endl;
}
else
{
cout<<0<<endl;
}
}
return 0;
}