PTA練習:誰が先に倒れますか.(C言語)

7296 ワード

拳法は古い中国の酒文化の面白い構成部分である.酒のテーブルの上で二人で拳を打つ方法は、人口ごとに数字を叫び、同時に手で数字を描くことです.もし誰かが描いた数字がちょうど二人が叫んだ数字の和に等しいならば、誰が負けて、負けた人は1杯の酒を罰します.二人が勝ったり、二人が負けたりすると、唯一の勝者が現れるまで次のラウンドを続けます.次に甲、乙の2人の酒の量(最大でどれだけの杯を飲むことができますか)と拳の記録を出して、2人が先に倒れたかを判断してください.
入力形式:
1行目は前後して甲、乙の2人の酒量(100を超えない非負の整数)を与え、スペースで区切る.次の行は正の整数N(≦100)を与え、その後N行、各行は1ラウンドの拳の記録を与え、フォーマットは:甲が甲を叫んで乙が乙を叫ぶ
出力フォーマット:
最初の行で先に倒れた人を出力します:Aは甲を代表して、Bは乙を代表します.2行目の出力が倒れていない人は何杯飲んだのか.問題は一人が倒れることを保証する.注意プログラムは誰かが倒れたら終了し、後のデータは処理する必要はありません.
サンプルを入力:
1 1 6 8 10 9 12 5 10 5 10 3 8 5 12 12 18 1 13 4 16 12 15 15 1 1 16
出力サンプル:
A 1
#include
int main()
{
 int A, B, N, i, j, flag, A_drink = 0, B_drink = 0;
 int com[100][4];
 scanf("%d%d%d", &A, &B, &N);
 for (i = 0; i < N; i++)
  for (j = 0; j < 4; j++)
   scanf("%d", &com[i][j]);
 for (i = 0; i < N; i++)
 {
  flag = com[i][0] + com[i][2];
  if (com[i][1] != com[i][3])
  {
   if (flag == com[i][1])A_drink++;
   else if (flag == com[i][3])B_drink++;
  }
  if (A_drink > A || B_drink > B)break;
 }
 if (A_drink > A)printf("A
%d
"
, B_drink); else printf("B
%d
"
, A_drink); return 0; }