誰先倒(15 分)

划拳是古老中國酒文化的一個有趣的組成部分。酒桌上兩人划拳的方法爲:每人口中喊出一個數字,同時用手比劃出一個數字。如果誰比劃出的數字正好等於兩人喊出的數字之和,誰就輸了,輸家罰一杯酒。兩人同贏或兩人同輸則繼續下一輪,直到唯一的贏家出現。

下面給出甲、乙兩人的酒量(最多能喝多少杯不倒)和划拳記錄,請你判斷兩個人誰先倒。


輸入格式:

輸入第一行先後給出甲、乙兩人的酒量(不超過100的非負整數),以空格分隔。下一行給出一個正整數N),隨後N行,每行給出一輪划拳的記錄,格式爲:

甲喊 甲劃 乙喊 乙劃

其中是喊出的數字,是劃出的數字,均爲不超過100的正整數(兩隻手一起劃)。


輸出格式:

在第一行中輸出先倒下的那個人:A代表甲,B代表乙。第二行中輸出沒倒的那個人喝了多少杯。題目保證有一個人倒下。注意程序處理到有人倒下就終止,後面的數據不必處理。

輸入樣例:

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
using namespace std;
struct jiu
{
  int a,b,c,d;
}h[100];
int main ()
{
  int ma,mb,n;
  cin>>ma>>mb>>n;
  for (int i=0;i<n;i++)
    cin>>h[i].a>>h[i].b>>h[i].c>>h[i].d;
  int la=0,lb=0;
  for (int i=0;i<n;i++)
  {
    if (h[i].a+h[i].c==h[i].b&&h[i].a+h[i].c!=h[i].d) la++; //如果甲輸了而乙沒輸
    else if (h[i].a+h[i].c==h[i].d&&h[i].a+h[i].c!=h[i].b) lb++;  //如果甲輸了而乙沒輸
    if (la>ma) {cout<<"A"<<endl<<lb<<endl;break;}  //喝的杯數大於最多能喝的杯數
    else if (lb>mb) {cout<<"B"<<endl<<la<<endl;break;}
  }
  return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章