poj 2302 Traditional BINGO

来源:互联网 发布:租用 网络 视频会议 编辑:程序博客网 时间:2024/05/18 02:39
//就是按下面的数一个一个处理,如果是已有的牌则标记上,如果有任意横排,竖排,或斜排的数都被标记了则游戏结束#include <iostream>using namespace std;int bingo[5][5];int num[75];int main(){    int tc, i, j, k, c;    bool flag1, flag2, flag3, flag4;    cin >> tc;    while (tc--)    {          flag1 = flag2 = flag3 = flag4 = false;          for (i = 0; i < 5; i++)             for (j = 0; j < 5; j++)             {                 if (i == 2 && j == 2)                    bingo[i][j] = -1;                 else                     cin >> bingo[i][j];             }          for (i = 0; i < 75; i++)              cin >> num[i];          for (i = 0; i < 75; i++)          {              for (j = 0; j < 5; j++)                for (k = 0; k < 5; k++)                {                    if (num[i] == bingo[j][k])                       bingo[j][k] = -1;                }                            //横列数字的判断               for (j = 0; j < 5; j++)              {                  c = 0;                  if (flag1)                       break;                 for (k = 0; k < 5; k++)                 {                     if (bingo[j][k] == -1)                        c++;                 }                 if (c == 5)                 {                    flag1 = true;                    break;                 }              }                            //竖列数字的判断               for (j = 0; j < 5; j++)              {                  c = 0;                  if (flag2)                       break;                 for (k = 0; k < 5; k++)                 {                     if (bingo[k][j] == -1)                        c++;                 }                 if (c == 5)                 {                     flag2 = true;                     break;                 }              }                            //对对角线的数字的判断               if (bingo[0][0] == -1 && bingo[1][1] == -1 && bingo[2][2] == -1 && bingo[3][3] == -1 && bingo[4][4] == -1)                 flag3 = true;                            if (bingo[0][4] == -1 && bingo[1][3] == -1 && bingo[2][2] == -1 && bingo[3][1] == -1 && bingo[4][0] == -1)                 flag4 = true;                               if (flag1 || flag2 || flag3 || flag4)              {                 cout << "BINGO after " << i+1 << " numbers announced" << endl;                 break;              }          }    }        system("pause");} 

原创粉丝点击