範例程式碼 uva10813
//uva10813
#include <bits/stdc++.h>
using namespace std;
int table[5][5]; // 5*5 }CAЬƦrɪ٨SQs츹AYQs츹AhӦmЬ -1
int input[75]; // ŪisǪ}C
// ˬd}CO_suAq ( ii, jj ) _IAO_P@AP@CAP@﨤uAֿn -1
bool check(int ii, int jj){
int a1 = 0, a2 = 0, a3 = 0, a4 = 0;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(table[i][j]==-1){
if(i==ii) a1++; // P@
if(j==jj) a2++; // P@C
if(i+j==ii+jj) a3++; // 﨤u
if(i-j==ii-jj) a4++; // D﨤u
}
}
}
if(a1==5||a2==5||a3==5||a4==5) return true; // ֿnӡAhsu
else return false; // _hASsu
}
//pG id X{b 5*5 }CAhӦmq id Ь -1A۩Is check AˬdO_su
bool mark(int id){
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(table[i][j]==id){
table[i][j]=-1;
return check(i,j);
}
}
}
return false;
}
int main(){
freopen("l.txt","w",stdout);
int test = 0;
cin>>test;
while(test--){ // C@մAŪJѽLAH 75 ӼƦrs
// ŪJ 5*5 }C
memset(table, 0, sizeof(table));
table[2][2] = -1;
for(int i=0;i<5;i++){
for(int j=0;j<5;j++){
if(i==2&&j==2) continue;
cin>>table[i][j];
}
}
// ŪJs
for(int i=0;i<75;i++) cin>>input[i];
// ھ 5*5 }CΥsǡAP_ĴX^X}lX{su
for(int i=0;i<75;i++){
if(mark(input[i])){
printf("BINGO after %d numbers announced\n",i+1);
break;
}
}
}
return 0;
}