//m*m賓果對獎
#include<stdio.h>
int main()
{
int n,m;
////n<=10 m<=256
int A[256][256][10];//賓果表
int ans[256*256] ;//喊出的數字
int B[256][256][10];//對獎後的賓果表
for (int num=0;num<10;num++)
{
for (int i=0;i<256;i++)
{
for (int j=0;j<256;j++)
{
A[i][j][num]=0;
B[i][j][num]=0;
ans[j] =0;
}
}
}
//輸入每個人的賓果表 A[m][m][n]
for (int num=0;num<n;num++)
{
for (int i=0;i<m;i++)
{
for (int j=0;j<m;j++)
{ scanf("%d " ,&A
[i
][j
][num
]); } }
}
//喊出的數字
for (int k=0;k<m*m;k++)
{ scanf("%d " ,&ans
[k
]); }
//對數字(一個一個數字慢慢對,喊中的數字為1)
int line_link=0;//是否已經連線
for (int w=0;w<m*m;w++)//數字
{
if (line_link==1)
{
break;
}
//對數字
for (int num=0;num<n;num++)//人
{
for (int i=0;i<m;i++)
{
for (int j=0;j<m;j++)
{
if (A[i][j][num]==ans[w])
{ B[i][j][num]=1;}
}
}
}
//對 1個數字後,檢查有沒有連線
for (int num=0;num<n;num++)//人
{
int num_line[2*m+2]; //0~2m+1 列:0~m-1 行:m~2m-1 兩斜線:2m、2m+1
for (int i=0;i<m;i++)//檢查列連線
{
int sum=0;
for (int j=0;j<m;j++)
{ sum=sum+B[i][j][num];}
num_line[i] =sum;
}
for (int j=0;j<m;j++)//檢查行連線
{
int sum=0;
for (int i=0;i<m;i++)
{ sum=sum+B[i][j][num];}
num_line[m+j] =sum;
}
int sum1=0;
int sum2=0;
for (int i=0;i<m;i++)//檢查兩斜線連線
{
for (int j=0;j<m;j++)
{
if (i==j)
{ sum1=sum1+B[i][j][num]; }
if (i==-j)
{ sum2=sum2+B[i][j][num]; }
}
num_line[2*m] =sum1;
num_line[2*m+1]=sum2;
}
//檢查 num_line[2*m+2]
for (int s=0;s<2*m+2;s++)
{
if (num_line[s]==m&&line_link==0)
{
line_link
=1;printf("%d " ,ans
[w
]);//顯示中獎數字 printf("%d " ,num
);break; //顯示人 }
else if (num_line[s]==m&&line_link==1)
{
printf("%d " ,num
);break; //顯示人 }
}
}
}
return 0;
}
Ly9tKm3os5PmnpzlsI3njY4KI2luY2x1ZGU8c3RkaW8uaD4KCmludCBtYWluKCkKewogICAgaW50IG4sbTsKICAgIHNjYW5mKCIlZCAlZFxuIiAsJm4sJm0pOwogICAgLy8vL248PTEwIG08PTI1NgogICAgaW50IEFbMjU2XVsyNTZdWzEwXTsvL+izk+aenOihqCAgICAgICAKICAgIGludCBhbnNbMjU2KjI1Nl0gICA7Ly/llorlh7rnmoTmlbjlrZcgCiAgICBpbnQgQlsyNTZdWzI1Nl1bMTBdOy8v5bCN542O5b6M55qE6LOT5p6c6KGoIAogICAgZm9yIChpbnQgbnVtPTA7bnVtPDEwO251bSsrKQogICAgewogICAgCSBmb3IgKGludCBpPTA7aTwyNTY7aSsrKQogICAgCSB7CiAgICAJIAkgIGZvciAoaW50IGo9MDtqPDI1NjtqKyspCiAgICAJIAkgIHsgICAgCiAgICAJIAkgICAgICAgQVtpXVtqXVtudW1dPTA7IAogICAgCSAJICAgICAgIEJbaV1bal1bbnVtXT0wOwogICAgCSAJICAgICAgIGFuc1tqXSAgICAgID0wOwogICAgCSAJICB9CgkJIH0KCX0KICAgIAogICAgLy/ovLjlhaXmr4/lgIvkurrnmoTos5PmnpzooaggQVttXVttXVtuXQogICAgZm9yIChpbnQgbnVtPTA7bnVtPG47bnVtKyspCiAgICB7CiAgICAJIGZvciAoaW50IGk9MDtpPG07aSsrKQogICAgCSB7CiAgICAJIAkgIGZvciAoaW50IGo9MDtqPG07aisrKQogICAgCSAJICB7ICAgIHNjYW5mKCIlZCAiICwmQVtpXVtqXVtudW1dKTsgfQoJCSB9Cgl9CgkKICAgIC8v5ZaK5Ye655qE5pW45a2XIAogICAgZm9yIChpbnQgaz0wO2s8bSptO2srKykKICAgIHsgICAgc2NhbmYoIiVkICIgLCZhbnNba10pOyB9CiAgICAKCiAgICAvL+WwjeaVuOWtlyjkuIDlgIvkuIDlgIvmlbjlrZfmhaLmhaLlsI0s5ZaK5Lit55qE5pW45a2X54K6MSkgCiAgICBpbnQgbGluZV9saW5rPTA7Ly/mmK/lkKblt7LntpPpgKPnt5ogCglmb3IgKGludCB3PTA7dzxtKm07dysrKS8v5pW45a2XIAoJeyAgICAKCSAgICBpZiAobGluZV9saW5rPT0xKQoJICAgIHsKCSAgICAJYnJlYWs7CgkJfQoJICAgICAvL+WwjeaVuOWtlyAKCQkgZm9yIChpbnQgbnVtPTA7bnVtPG47bnVtKyspLy/kurogCgkJIHsKCQkgCSAgZm9yIChpbnQgaT0wO2k8bTtpKyspCgkJIAkgIHsKICAgIAkgCSAgICAgICBmb3IgKGludCBqPTA7ajxtO2orKykKICAgIAkgCSAgICAgICB7ICAgIAogICAgCSAJICAgICAgICAgICAgaWYgKEFbaV1bal1bbnVtXT09YW5zW3ddKQoJCQkJCQl7ICAgQltpXVtqXVtudW1dPTE7fSAKCQkJCSAgIH0KCQkgICAgICB9CgkJIH0gCgkJIAoJCSAvL+WwjSAx5YCL5pW45a2X5b6M77yM5qqi5p+l5pyJ5rKS5pyJ6YCj57eaCgkJIGZvciAoaW50IG51bT0wO251bTxuO251bSsrKS8v5Lq6IAoJCSB7CiAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgaW50IG51bV9saW5lWzIqbSsyXTsgLy8wfjJtKzEgIOWIl++8mjB+bS0xIOihjO+8mm1+Mm0tMSDlhanmlpznt5rvvJoybeOAgTJtKzEgCiAgICAgICAgICAgICAgZm9yIChpbnQgaT0wO2k8bTtpKyspLy/mqqLmn6XliJfpgKPnt5ogCiAgICAgICAgICAgICAgeyAgICAKICAgICAgICAgICAgICAgICAgIGludCBzdW09MDsKICAgICAgICAgICAgICAJICAgZm9yIChpbnQgaj0wO2o8bTtqKyspCiAgICAgICAgICAgICAgCSAgIHsgICAgc3VtPXN1bStCW2ldW2pdW251bV07fQogICAgICAgICAgICAgIAkgICBudW1fbGluZVtpXSAgPXN1bTsgCgkJCSAgfQoJCQkgIGZvciAoaW50IGo9MDtqPG07aisrKS8v5qqi5p+l6KGM6YCj57eaIAogICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgIGludCBzdW09MDsKICAgICAgICAgICAgICAJICAgZm9yIChpbnQgaT0wO2k8bTtpKyspCiAgICAgICAgICAgICAgCSAgIHsgICAgc3VtPXN1bStCW2ldW2pdW251bV07fQogICAgICAgICAgICAgIAkgICBudW1fbGluZVttK2pdICA9c3VtOyAKCQkJICB9CiAgICAgICAgICAgICAgaW50IHN1bTE9MDsKICAgICAgICAgICAgICBpbnQgc3VtMj0wOwkJCSAgCgkJCSAgZm9yIChpbnQgaT0wO2k8bTtpKyspLy/mqqLmn6Xlhanmlpznt5rpgKPnt5ogCiAgICAgICAgICAgICAgeyAgICAKICAgICAgICAgICAgICAJICAgZm9yIChpbnQgaj0wO2o8bTtqKyspCiAgICAgICAgICAgICAgCSAgIHsgIAoJCQkJCSBpZiAoaT09aikgIAoJCQkJCSB7ICAgc3VtMT1zdW0xK0JbaV1bal1bbnVtXTsgfQoJCQkJCSBpZiAoaT09LWopCgkJCQkJIHsgICBzdW0yPXN1bTIrQltpXVtqXVtudW1dOyB9CQkJCQkgCgkJCQkgICB9CgkJCQkgICBudW1fbGluZVsyKm1dICA9c3VtMTsKCQkJCSAgIG51bV9saW5lWzIqbSsxXT1zdW0yOwoJCQkgIH0KCQkJICAKCQkJICAvL+aqouafpSBudW1fbGluZVsyKm0rMl0gCgkJCSAgZm9yIChpbnQgcz0wO3M8MiptKzI7cysrKQoJCQkgIHsKCQkJICAgICAgIGlmIChudW1fbGluZVtzXT09bSYmbGluZV9saW5rPT0wKQoJCQkgICAgICAgeyAgIAoJCQkJICAgICAgIGxpbmVfbGluaz0xO3ByaW50ZigiJWQgIiAsYW5zW3ddKTsvL+mhr+ekuuS4reeNjuaVuOWtlyAKCQkJCSAgICAgICBwcmludGYoIiVkICIgLG51bSk7YnJlYWs7ICAgIC8v6aGv56S65Lq6IAoJCQkJICAgfQoJCQkJICAgZWxzZSBpZiAobnVtX2xpbmVbc109PW0mJmxpbmVfbGluaz09MSkKCQkJICAgICAgIHsgICAKCQkJCSAgICAgICBwcmludGYoIiVkICIgLG51bSk7YnJlYWs7ICAgIC8v6aGv56S65Lq6IAoJCQkJICAgfQoJCQkgIH0gICAKCQkgfSAgCgkJIAoJCSAKCQkgCgl9IAogICAgCgogCiAKIAoKcmV0dXJuIDA7IAp9IAo=
MTAgMwo2IDkgOAo1IDMgMgoxIDcgNAo5IDUgMgo3IDEgNgozIDQgOAo2IDUgMwo3IDggMQo0IDIgOQozIDIgOAo3IDYgMQo0IDUgOQo1IDkgMgo0IDggNwoxIDMgNgozIDkgMgo0IDggNQo2IDcgMQo1IDYgMwoxIDQgMgo4IDkgNwo5IDYgMgoxIDMgNwo0IDUgOAo3IDUgMQo4IDIgOQo0IDMgNgo5IDUgMQo2IDcgMwoyIDggNAoyIDQgNSAxIDkgNiAzIDcgOA==
10 3
6 9 8
5 3 2
1 7 4
9 5 2
7 1 6
3 4 8
6 5 3
7 8 1
4 2 9
3 2 8
7 6 1
4 5 9
5 9 2
4 8 7
1 3 6
3 9 2
4 8 5
6 7 1
5 6 3
1 4 2
8 9 7
9 6 2
1 3 7
4 5 8
7 5 1
8 2 9
4 3 6
9 5 1
6 7 3
2 8 4
2 4 5 1 9 6 3 7 8