#45430: 解答在此>>>


11352099@st.fhjh.tp.edu.tw (哈哈嗨)

學校 : 臺北市私立復興實驗高級中學
編號 : 284733
來源 : [27.247.35.202]
最後登入時間 :
2025-03-03 19:22:28
n136. p8. 賓果遊戲 -- 110新北市資訊學科能力複賽 | From: [27.247.35.202] | 發表日期 : 2025-03-03 19:18

#include <iostream>
using namespace std;

int main(){
    int N;
    int prize[25];
    int board[5][5];
    bool win[5][5];
    
    cin >> N;
    for (int i=0;i<N;++i){
        cin >> prize[i];
    }
    for (int i=0;i<5;++i){
        for (int j=0;j<5;++j){
            cin >> board[i][j];
            
            win[i][j] = false;
            for (int k=0;k<N;++k){
                if (board[i][j] == prize[k]){
                    win[i][j] = true;
                }
            }
        }
    }
    
    // 檢查每個橫排
    
    int bingo = 0, nearBingo = 0;
    for (int i=0;i<5;++i){
        int count = 0;
        for (int j=0;j<5;++j){
            if (win[i][j])
                count++;
        }
        if (count == 5) bingo++;
        else if (count == 4) nearBingo++;
    }
    
    // 檢查每個直列
    for (int j=0;j<5;++j){
        int count = 0;
        for (int i=0;i<5;++i){
            if (win[i][j])
                count++;
        }
        if (count == 5) bingo++;
        else if (count == 4) nearBingo++;
    }
    
    // 檢查斜線
    {
        int count = 0;
        for (int i=0;i<5;++i){
            if (win[i][i])
                count++;
        }
        if (count == 5) bingo++;
        else if (count == 4) nearBingo++;
    }
    {
        int count = 0;
        for (int i=0;i<5;++i){
            if (win[i][4-i])
                count++;
        }
        if (count == 5) bingo++;
        else if (count == 4) nearBingo++;
    }
    
    cout << bingo << ' ' << nearBingo << '\n';

    return 0;
}
 
ZeroJudge Forum