#include <stdio.h>
int main ()
{
int n, m;
int num;
int w_flag = 0;
scanf ( "%d%d", &n
, &m
);
int board[n][m][m];
int bingo[n][2][m+1];
for ( int p = 0; p < n; p++ ) {
for ( int i = 0; i < m; i++ ) {
bingo[p][0][i] = bingo[p][1][i] = 0;
for ( int j = 0; j < m; j++ )
scanf ( "%d", &board
[p
][i
][j
] );
}
bingo[p][0][m] = bingo[p][1][m] = 0;//【1.以上是把两行搞成0的意思吗?】
}
while ( !w_flag ) {//【2.这里是什么意思?是说没有w_flag吗?】
// read number
// for each player find number in their board
for ( int p = 0; p < n; p++ ) {
int f_flag = 0;
for ( int i = 0; !f_flag && i < m; i++ )
for ( int j = 0; !f_flag && j < m; j++ )
// mark if find
if ( board[p][i][j] == num ) {
f_flag = 1;
// row and column
bingo[p][0][i]++;
bingo[p][1][j]++;//【3.整个数组后面跟一个++有什么结果?】
// diagnal
if ( i == j ) bingo[p][0][m]++;
if ( i + j == m-1 ) bingo[p][1][m]++;
// win
if ( bingo[p][0][i] == m || bingo[p][1][j] == m ||
bingo[p][0][m] == m || bingo[p][1][m] == m ) {
if ( !w_flag ) {
w_flag = 1;//【4.还有以上五行,完全没看懂……】
}
}
}
}
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgoKCmludCBtYWluICgpCgp7CgogICBpbnQgbiwgbTsKCiAgIGludCBudW07CgogICBpbnQgd19mbGFnID0gMDsKCiAgIHNjYW5mICggIiVkJWQiLCAmbiwgJm0gKTsKCgoKICAgaW50IGJvYXJkW25dW21dW21dOwoKICAgaW50IGJpbmdvW25dWzJdW20rMV07CgoKCiAgIGZvciAoIGludCBwID0gMDsgcCA8IG47IHArKyApIHsKCiAgICAgIGZvciAoIGludCBpID0gMDsgaSA8IG07IGkrKyApIHsKCiAgICAgICAgIGJpbmdvW3BdWzBdW2ldID0gYmluZ29bcF1bMV1baV0gPSAwOwoKICAgICAgICAgZm9yICggaW50IGogPSAwOyBqIDwgbTsgaisrICkKCiAgICAgICAgICAgIHNjYW5mICggIiVkIiwgJmJvYXJkW3BdW2ldW2pdICk7CgogICAgICB9CgogICAgICBiaW5nb1twXVswXVttXSA9IGJpbmdvW3BdWzFdW21dID0gMDsvL+OAkDEu5Lul5LiK5piv5oqK5Lik6KGM5pCe5oiQMOeahOaEj+aAneWQl++8n+OAkQoKICAgfQoKCgogICB3aGlsZSAoICF3X2ZsYWcgKSB7Ly/jgJAyLui/memHjOaYr+S7gOS5iOaEj+aAne+8n+aYr+ivtOayoeaciXdfZmxhZ+WQl++8n+OAkQoKICAgICAgLy8gcmVhZCBudW1iZXIKCiAgICAgIHNjYW5mICggIiVkIiwgJm51bSApOwoKCgogICAgICAvLyBmb3IgZWFjaCBwbGF5ZXIgZmluZCBudW1iZXIgaW4gdGhlaXIgYm9hcmQKCiAgICAgIGZvciAoIGludCBwID0gMDsgcCA8IG47IHArKyApIHsKCiAgICAgICAgIGludCBmX2ZsYWcgPSAwOwoKICAgICAgICAgZm9yICggaW50IGkgPSAwOyAhZl9mbGFnICYmIGkgPCBtOyBpKysgKQoKICAgICAgICAgICAgZm9yICggaW50IGogPSAwOyAhZl9mbGFnICYmIGogPCBtOyBqKysgKQoKICAgICAgICAgICAgICAgLy8gbWFyayBpZiBmaW5kCgogICAgICAgICAgICAgICBpZiAoIGJvYXJkW3BdW2ldW2pdID09IG51bSApIHsKCiAgICAgICAgICAgICAgICAgIGZfZmxhZyA9IDE7CgogICAgICAgICAgICAgICAgICAvLyByb3cgYW5kIGNvbHVtbgoKICAgICAgICAgICAgICAgICAgYmluZ29bcF1bMF1baV0rKzsKCiAgICAgICAgICAgICAgICAgIGJpbmdvW3BdWzFdW2pdKys7Ly/jgJAzLuaVtOS4quaVsOe7hOWQjumdoui3n+S4gOS4qisr5pyJ5LuA5LmI57uT5p6c77yf44CRCgogICAgICAgICAgICAgICAgICAvLyBkaWFnbmFsCgogICAgICAgICAgICAgICAgICBpZiAoIGkgPT0gaiApIGJpbmdvW3BdWzBdW21dKys7CgogICAgICAgICAgICAgICAgICBpZiAoIGkgKyBqID09IG0tMSApIGJpbmdvW3BdWzFdW21dKys7CgogICAgICAgICAgICAgICAgICAvLyB3aW4KCiAgICAgICAgICAgICAgICAgIGlmICggYmluZ29bcF1bMF1baV0gPT0gbSB8fCBiaW5nb1twXVsxXVtqXSA9PSBtIHx8CgogICAgICAgICAgICAgICAgICAgICAgIGJpbmdvW3BdWzBdW21dID09IG0gfHwgYmluZ29bcF1bMV1bbV0gPT0gbSApIHsKCiAgICAgICAgICAgICAgICAgICAgIGlmICggIXdfZmxhZyApIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZiAoICIlZCIsIG51bSApOwoKICAgICAgICAgICAgICAgICAgICAgICAgd19mbGFnID0gMTsvL+OAkDQu6L+Y5pyJ5Lul5LiK5LqU6KGM77yM5a6M5YWo5rKh55yL5oeC4oCm4oCm44CRCgogICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICBwcmludGYgKCAiICVkIiwgcCApOwoKICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgfQoKICAgICAgfQoKCgogICB9CgoKCiAgIHJldHVybiAwOwoKfQ==
NCA0CjEgMiAzIDQKNSA2IDcgOAo5IDEwIDExIDEyCjEzIDE0IDE1IDE2CjEgMTMgNyAxNQo0IDE2IDkgMgo4IDEwIDYgMTIKNSAxNCAzIDExCjkgMTAgMyAyCjUgNyAxNiAxCjEzIDEyIDE0IDExCjQgOCAxNSA2CjUgMTMgNCAxMAoxMSA2IDE2IDEKMTIgMiA3IDE0CjMgMTUgOCA5CjE2IDkgMTEgMTUgMTQgNiAxIDEwIDIgOCAxMiAzIDcgNSAxMyA0
4 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
1 13 7 15
4 16 9 2
8 10 6 12
5 14 3 11
9 10 3 2
5 7 16 1
13 12 14 11
4 8 15 6
5 13 4 10
11 6 16 1
12 2 7 14
3 15 8 9
16 9 11 15 14 6 1 10 2 8 12 3 7 5 13 4