#include <stdio.h>
#include <string.h>
#define MAX_N 10
#define MAX_M 256
int board[MAX_N][MAX_M][MAX_M];
int mark[MAX_N][MAX_M][MAX_M];
int posRow[MAX_N][MAX_M * MAX_M + 1];
int posCol[MAX_N][MAX_M * MAX_M + 1];
int check_bingo(int player, int m) {
for (int i = 0; i < m; i++) {
// 檢查行
int rowFull = 1, colFull = 1;
for (int j = 0; j < m; j++) {
if (!mark[player][i][j]) rowFull = 0;
if (!mark[player][j][i]) colFull = 0;
}
if (rowFull || colFull)
return 1;
}
// 檢查對角線
int diag1 = 1, diag2 = 1;
for (int i = 0; i < m; i++) {
if (!mark[player][i][i]) diag1 = 0;
if (!mark[player][i][m - 1 - i]) diag2 = 0;
}
return diag1 || diag2;
}
int main() {
int n, m;
// 初始化資料
memset(mark
, 0, sizeof(mark
)); for (int p = 0; p < n; p++) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < m; j++) {
int num;
board[p][i][j] = num;
posRow[p][num] = i;
posCol[p][num] = j;
}
}
}
int callCount = m * m;
int called[callCount];
for (int i = 0; i < callCount; i++) {
}
int winCalledNum = -1;
int winners[MAX_N] = {0}; // 用來記錄是否已贏
int winPlayers[MAX_N], winCount = 0;
for (int t = 0; t < callCount; t++) {
int num = called[t];
for (int p = 0; p < n; p++) {
int i = posRow[p][num];
int j = posCol[p][num];
mark[p][i][j] = 1;
}
for (int p = 0; p < n; p++) {
if (!winners[p] && check_bingo(p, m)) {
winners[p] = 1;
if (winCalledNum == -1) winCalledNum = num;
}
}
if (winCalledNum != -1) {
break;
}
}
// 收集所有贏家
for (int p = 0; p < n; p++) {
if (winners[p])
winPlayers[winCount++] = p;
}
// 輸出
for (int i = 0; i < winCount; i++) {
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCiNkZWZpbmUgTUFYX04gMTAKI2RlZmluZSBNQVhfTSAyNTYKCmludCBib2FyZFtNQVhfTl1bTUFYX01dW01BWF9NXTsKaW50IG1hcmtbTUFYX05dW01BWF9NXVtNQVhfTV07CmludCBwb3NSb3dbTUFYX05dW01BWF9NICogTUFYX00gKyAxXTsKaW50IHBvc0NvbFtNQVhfTl1bTUFYX00gKiBNQVhfTSArIDFdOwoKaW50IGNoZWNrX2JpbmdvKGludCBwbGF5ZXIsIGludCBtKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgewogICAgICAgIC8vIOaqouafpeihjAogICAgICAgIGludCByb3dGdWxsID0gMSwgY29sRnVsbCA9IDE7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBtOyBqKyspIHsKICAgICAgICAgICAgaWYgKCFtYXJrW3BsYXllcl1baV1bal0pIHJvd0Z1bGwgPSAwOwogICAgICAgICAgICBpZiAoIW1hcmtbcGxheWVyXVtqXVtpXSkgY29sRnVsbCA9IDA7CiAgICAgICAgfQogICAgICAgIGlmIChyb3dGdWxsIHx8IGNvbEZ1bGwpCiAgICAgICAgICAgIHJldHVybiAxOwogICAgfQogICAgLy8g5qqi5p+l5bCN6KeS57eaCiAgICBpbnQgZGlhZzEgPSAxLCBkaWFnMiA9IDE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgewogICAgICAgIGlmICghbWFya1twbGF5ZXJdW2ldW2ldKSBkaWFnMSA9IDA7CiAgICAgICAgaWYgKCFtYXJrW3BsYXllcl1baV1bbSAtIDEgLSBpXSkgZGlhZzIgPSAwOwogICAgfQogICAgcmV0dXJuIGRpYWcxIHx8IGRpYWcyOwp9CgppbnQgbWFpbigpIHsKICAgIGludCBuLCBtOwogICAgc2NhbmYoIiVkICVkIiwgJm4sICZtKTsKCiAgICAvLyDliJ3lp4vljJbos4fmlpkKICAgIG1lbXNldChtYXJrLCAwLCBzaXplb2YobWFyaykpOwogICAgZm9yIChpbnQgcCA9IDA7IHAgPCBuOyBwKyspIHsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgewogICAgICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IG07IGorKykgewogICAgICAgICAgICAgICAgaW50IG51bTsKICAgICAgICAgICAgICAgIHNjYW5mKCIlZCIsICZudW0pOwogICAgICAgICAgICAgICAgYm9hcmRbcF1baV1bal0gPSBudW07CiAgICAgICAgICAgICAgICBwb3NSb3dbcF1bbnVtXSA9IGk7CiAgICAgICAgICAgICAgICBwb3NDb2xbcF1bbnVtXSA9IGo7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgaW50IGNhbGxDb3VudCA9IG0gKiBtOwogICAgaW50IGNhbGxlZFtjYWxsQ291bnRdOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBjYWxsQ291bnQ7IGkrKykgewogICAgICAgIHNjYW5mKCIlZCIsICZjYWxsZWRbaV0pOwogICAgfQoKICAgIGludCB3aW5DYWxsZWROdW0gPSAtMTsKICAgIGludCB3aW5uZXJzW01BWF9OXSA9IHswfTsgLy8g55So5L6G6KiY6YyE5piv5ZCm5bey6LSPCiAgICBpbnQgd2luUGxheWVyc1tNQVhfTl0sIHdpbkNvdW50ID0gMDsKCiAgICBmb3IgKGludCB0ID0gMDsgdCA8IGNhbGxDb3VudDsgdCsrKSB7CiAgICAgICAgaW50IG51bSA9IGNhbGxlZFt0XTsKICAgICAgICBmb3IgKGludCBwID0gMDsgcCA8IG47IHArKykgewogICAgICAgICAgICBpbnQgaSA9IHBvc1Jvd1twXVtudW1dOwogICAgICAgICAgICBpbnQgaiA9IHBvc0NvbFtwXVtudW1dOwogICAgICAgICAgICBtYXJrW3BdW2ldW2pdID0gMTsKICAgICAgICB9CgogICAgICAgIGZvciAoaW50IHAgPSAwOyBwIDwgbjsgcCsrKSB7CiAgICAgICAgICAgIGlmICghd2lubmVyc1twXSAmJiBjaGVja19iaW5nbyhwLCBtKSkgewogICAgICAgICAgICAgICAgd2lubmVyc1twXSA9IDE7CiAgICAgICAgICAgICAgICBpZiAod2luQ2FsbGVkTnVtID09IC0xKSB3aW5DYWxsZWROdW0gPSBudW07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGlmICh3aW5DYWxsZWROdW0gIT0gLTEpIHsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgfQoKICAgIC8vIOaUtumbhuaJgOaciei0j+WutgogICAgZm9yIChpbnQgcCA9IDA7IHAgPCBuOyBwKyspIHsKICAgICAgICBpZiAod2lubmVyc1twXSkKICAgICAgICAgICAgd2luUGxheWVyc1t3aW5Db3VudCsrXSA9IHA7CiAgICB9CgogICAgLy8g6Ly45Ye6CiAgICBwcmludGYoIiVkIiwgd2luQ2FsbGVkTnVtKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgd2luQ291bnQ7IGkrKykgewogICAgICAgIHByaW50ZigiICVkIiwgd2luUGxheWVyc1tpXSk7CiAgICB9CiAgICBwcmludGYoIlxuIik7CgogICAgcmV0dXJuIDA7Cn0=
MyAxMAo0NSAzMiA3MiA0OCA2NSA2MyA3MyA5MiA5OSA2NAoxMiAzNiA4MiAxNCAyMSAzIDY4IDQxIDQgMjUKODMgMzggNTcgNTMgODEgODkgMTYgMzQgMiA0Ngo3NSA1NCA2OSAxOSA0MyAxMyA0MCAyNCA2MCA3Nwo3MCA0OSA5NSA3MSA1MCAyOCA1OSAzMyA5OCAxMDAKODAgOTMgOTAgMTEgNjEgMjAgMjYgMjIgODggMzEKOCAyNyA5MSA3OSA1MiA4NiA2NiA0MiA2MiA4NAoxNSA1NSA3NCA3OCA2NyAzNSA5NyA0NyAxIDk2Cjk0IDQ0IDcgMTggMzkgNTggNSAyOSAyMyA1NgoxMCA5IDc2IDYgMzcgODUgMTcgODcgMzAgNTEKMSA0NSA1MCA0OSAxNiAyMCA4MyAxOSAxMiA0Ngo1NSA0MiAxOCA5OSA3NiA5MiAyNiA5NCA0MSA3NQo4NyAyIDMgMzAgMzQgMzkgOTcgOTAgMTEgNDcKNTkgNjcgMjEgMjggNzAgMzUgOTMgNjMgMTcgNzEKMzggNTIgNTcgNzMgODUgODYgMjMgMzEgMzMgNwoxMyA1NCA2IDg0IDM3IDUxIDc0IDY2IDQwIDk2CjgxIDU4IDEwIDE1IDQzIDI3IDk1IDYyIDM2IDY1CjU2IDc3IDgyIDEwMCA2OCA5IDUzIDkxIDIyIDUKNzIgNzggNjkgMjQgMjUgODggOTggOCAyOSAzMgo0IDQ4IDE0IDg5IDgwIDY0IDYwIDc5IDYxIDQ0CjI5IDE1IDg4IDQ3IDkgODMgNjMgNTMgMzMgMjIKMzEgNDQgNjIgMTAwIDQxIDUgNzkgMTQgNzAgMjUKOTYgODAgMzIgNjcgODkgODIgMyA4MSA5OCAxMwoyMCA0MyAzNyA4NSAzNCA0OSAxOSA3NiA0NiA5MQoyIDI0IDE2IDExIDI2IDk0IDQgNyAxMCA2MQo5MyAxMiA3OCA5NyAzOSA1NCA2NCA4NyA1MSA2OAo1OCA0MCA2OSA1NSA0NSA1MCA2MCA5MiAxIDk5CjcyIDI4IDc3IDE4IDU5IDQ4IDY1IDU3IDI3IDM2CjUyIDg2IDQyIDczIDU2IDc1IDIzIDk1IDc0IDgKMjEgODQgMzggOTAgNzEgMTcgMzUgMzAgNjYgNgo1OSA5NCAxNiAyNyA2OCA1OCA3OSAzOCAxNyA4NCAyMSA1NyA1IDIyIDczIDk1IDIgMzAgNjQgMTQgNDkgMSA4NyA0MSAyOSA0NiA5NiAzNSA1NCA0OCA4NSAzMSA0MiA5MyAzIDggODggNiAzNyA4NiAxOCA0NSA3NSA2MyAyNCA1NSA0NyAzNiA5NyAxMyAyMyA5MiA3OCA5MSA0MCA4MCAzMiA1MiAzOSA2NiAxMiA4MSAzNCA4MiA2NyA1NiAzMyA1MCA0IDkwIDYyIDc0IDUxIDI1IDc2IDI4IDIwIDE1IDcgMjYgNDQgOSA4MyA2MSA3NyAxMDAgNjkgNjUgODkgNzAgNzEgNzIgOTggMTkgNDMgOTkgMTAgMTEgNTMgNjA=
3 10
45 32 72 48 65 63 73 92 99 64
12 36 82 14 21 3 68 41 4 25
83 38 57 53 81 89 16 34 2 46
75 54 69 19 43 13 40 24 60 77
70 49 95 71 50 28 59 33 98 100
80 93 90 11 61 20 26 22 88 31
8 27 91 79 52 86 66 42 62 84
15 55 74 78 67 35 97 47 1 96
94 44 7 18 39 58 5 29 23 56
10 9 76 6 37 85 17 87 30 51
1 45 50 49 16 20 83 19 12 46
55 42 18 99 76 92 26 94 41 75
87 2 3 30 34 39 97 90 11 47
59 67 21 28 70 35 93 63 17 71
38 52 57 73 85 86 23 31 33 7
13 54 6 84 37 51 74 66 40 96
81 58 10 15 43 27 95 62 36 65
56 77 82 100 68 9 53 91 22 5
72 78 69 24 25 88 98 8 29 32
4 48 14 89 80 64 60 79 61 44
29 15 88 47 9 83 63 53 33 22
31 44 62 100 41 5 79 14 70 25
96 80 32 67 89 82 3 81 98 13
20 43 37 85 34 49 19 76 46 91
2 24 16 11 26 94 4 7 10 61
93 12 78 97 39 54 64 87 51 68
58 40 69 55 45 50 60 92 1 99
72 28 77 18 59 48 65 57 27 36
52 86 42 73 56 75 23 95 74 8
21 84 38 90 71 17 35 30 66 6
59 94 16 27 68 58 79 38 17 84 21 57 5 22 73 95 2 30 64 14 49 1 87 41 29 46 96 35 54 48 85 31 42 93 3 8 88 6 37 86 18 45 75 63 24 55 47 36 97 13 23 92 78 91 40 80 32 52 39 66 12 81 34 82 67 56 33 50 4 90 62 74 51 25 76 28 20 15 7 26 44 9 83 61 77 100 69 65 89 70 71 72 98 19 43 99 10 11 53 60