0부터 9까지의 숫자가 표시된 카드를 가지고 두 사람 A와 B가 게임을 한다. A와 B에게는 각
각 0에서 9까지의 숫자가 하나씩 표시된 10장의 카드뭉치가 주어진다. 두 사람은 카드를 임의
의 순서로 섞은 후 숫자가 보이지 않게 일렬로 늘어놓고 게임을 시작한다. 단, 게임 도중 카드
의 순서를 바꿀 수는 없다.
A와 B 각각이 늘어놓은 카드를 뒤집어서 표시된 숫자를 확인하는 것을 한 라운드라고 한
다. 게임은 첫 번째 놓인 카드부터 시작하여 순서대로 10번의 라운드로 진행된다. 각 라운드에
서는 공개된 숫자가 더 큰 사람이 승자가 된다. 승자에게는 승점 3점이 주어지고 패자에게는
승점이 주어지지 않는다. 만약 공개된 두 숫자가 같아서 비기게 되면, A, B 모두에게 승점 1
점이 주어진다.
10번의 라운드가 모두 진행된 후, 총 승점이 큰 사람이 게임의 승자가 된다. 만약, A와 B
의 총 승점이 같은 경우에는, 제일 마지막에 이긴 사람을 게임의 승자로 정한다. 그래도 승부
가 나지 않는 경우는 모든 라운드에서 비기는 경우뿐이고 이 경우에 두 사람은 비겼다고 한
다.
예를 들어, 다음 표에서 3번째 줄은 각 라운드의 승자를 표시하고 있다. 표에서 D는 무승
부를 나타낸다. 이 경우에 A의 총 승점은 16점이고, B는 13점이어서, A가 게임의 승자가 된
다.
라운드 1 2 3 4 5 6 7 8 9 10
A 4 5 6 7 0 1 2 3 9 8
B 1 2 3 4 5 6 7 8 9 0
승 A A A A B B B B D A
아래 표의 경우에는 A와 B의 총 승점은 13점으로 같다. 마지막으로 승부가 난 라운드는 7
번째 라운드이고, 이 라운드의 승자인 B가 게임의 승자가 된다.
라운드 1 2 3 4 5 6 7 8 9 10
A 9 1 7 2 6 3 0 4 8 5
B 6 3 9 2 1 0 7 4 8 5
승 A B B D A A B D D D
[C++를 이용한 창의적 문제 해결]
#include
using namespace std;
int main() {
int i,a[10],b[10],acnt=0,bcnt=0;
char lastwinner;
for(i=0;i<10;i++){
cin>>a[i];
}
for(i=0;i<10;i++){
cin>>b[i];
}
for(i=0;i<10;i++){
if(a[i]>b[i]) {
acnt=acnt+3;
lastwinner='A';
}
else if(a[i]<b[i]){
bcnt=bcnt+3;
lastwinner='B';
}
else {
acnt+=1;
bcnt+=1;
}
}
cout<<acnt<<" "<<bcnt<<endl;
if(acnt>bcnt) cout<<'A';
if(bcnt>acnt) cout<<'B';
if(acnt==bcnt) cout<<lastwinner;
return 0;
}