#include <iostream>
#include <vector>
using namespace std;
int hang(const vector<vector<int> >& a, const int &n)
{
int num0 = 0;
int num1 = 0;
for (int i = 0; i < n; i++)
{
num0 = num1 = 0;
for (int j = 0; j < n; j++)
switch (a[i][j])
{
case 1:
num1++; if (num1 == n)return 1; break;
case 0:
num0++; if (num0 == n)return 0; break;
default:
break;
}
return -1;
}
}
int lie(const vector<vector<int> >& a, const int &n)
{
int num0 = 0;
int num1 = 0;
for (int j = 0; j< n; j++)
{
num0 = num1 = 0;
for (int i = 0; i < n; i++)
switch (a[i][j])
{
case 1:
num1++; if (num1 == n)return 1; break;
case 0:
num0++; if (num0 == n)return 0; break;
default:
break;
}
return -1;
}
}
int duijiao1(const vector<vector<int> >& a, const int &n)
{
int num0 = 0;
int num1 = 0;
for(int i=0;i<n;i++)
switch (a[i][i])
{
case 1:
num1++; if (num1 == n)return 1; break;
case 0:
num0++; if (num0 == n)return 0; break;
default:
break;
}
return -1;
}
int duijiao2(const vector<vector<int> >& a, const int &n)
{
int num0=0;
int num1=0;
for (int i = 0; i < n; i++)
switch (a[i][n-1-i])
{
case 1:
num1++; if (num1 == n)return 1; break;
case 0:
num0++; if (num0 == n)return 0; break;
default:
break;
}
return -1;
}
int Input()
{
int i; cout << "input:" << endl;cin >> i; return i;
}
vector<int> input(int &n)
{
vector<int>a; int i;
for (int i = 0; i < n; i++)
a.push_back(Input());
return a;
}
int main()
{
vector<vector<int> > a;
int n;
cout << "请输入N:" << endl;
cin >> n;
for (int i = 0; i < n; i++)
a.push_back(input(n));
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
{
cout << a[i][j] << " ";
if ((j + 1) == n)
cout << "\n";
}
cout << "\n";
int result = hang(a, n);
if(result==-1)
{
result = lie(a, n);
if (result == -1)
{
result = duijiao1(a, n);
if (result == -1)
result = duijiao2(a, n);
}
}
cout << "胜利者是:" << result << endl;
return 0;
}