close

https://uva.onlinejudge.org/index.php?option=onlinejudge&page=show_problem&problem=1754

 

#include <bits/stdc++.h>

using namespace std;

int table[5][5];  
int input[75];   

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++;   
                if(j==jj)       a2++;   
                if(i+j==ii+jj)  a3++;   
                if(i-j==ii-jj)  a4++;   
            }
        }
    }
    if(a1==5||a2==5||a3==5||a4==5)  return true;    
    else                            return false;   
}

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--){     
        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];
            }
        }

        for(int i=0;i<75;i++)   cin>>input[i];

        for(int i=0;i<75;i++){
            if(mark(input[i])){
                printf("BINGO after %d numbers announced\n",i+1);
                break;
            }
        }
    }
    return 0;
}

arrow
arrow
    文章標籤
    UVA10813 Traditional BINGO
    全站熱搜

    楓綺 發表在 痞客邦 留言(0) 人氣()