?? 2101.cpp
字號:
/* This Code is Submitted by wywcgs for Problem 2101 on 2006-04-14 at 23:06:05 */
#include <cstdio>
class Bingo {
private:
int card[5][5];
void mark(int);
bool win() const;
public:
void make();
void play();
};
void Bingo::make() {
int i, j; card[2][2] = 0;
for(i = 0; i < 5; i++)
for(j = 0; j < 5; j++)
if(i != 2 || j != 2) scanf("%d", &card[i][j]);
}
void Bingo::mark(int k) {
int i, j; bool mk = false;
for(i = 0; i < 5; i++)
for(j = 0; j < 5; j++)
if(card[i][j] == k) { mk = true; card[i][j] = -1; }
if(!mk) card[2][2] = -1;
}
bool Bingo::win() const {
int i, j;
for(i = 0; i < 5; i++) {
bool ce = true, re = true;
for(j = 0; j < 5; j++) {
if(card[i][j] != -1) ce = false;
if(card[j][i] != -1) re = false;
}
if(ce || re) return true;
}
bool lde = true, rde = true;
for(i = 0; i < 5; i++) {
if(card[i][i] != -1) lde = false;
if(card[i][4-i] != -1) rde = false;
}
return (lde || rde);
}
void Bingo::play() {
int i, rd; bool end = false;
for(i = 0; i < 75; i++) {
int k; scanf("%d", &k);
if(end) continue;
mark(k); end = win();
if(end) rd = i+1;
}
printf("BINGO after %d numbers announced\n", rd);
}
int main()
{
Bingo bingo;
int t, T;
scanf("%d", &T);
for(t = 0; t < T; t++) {
bingo.make();
bingo.play();
}
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -