1. 程式人生 > 其它 >L1-019 誰先倒

L1-019 誰先倒

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

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

輸入第一行先後給出甲、乙兩人的酒量(不超過100的非負整數),以空格分隔。下一行給出一個正整數N(≤100),隨後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
結尾無空行

 需要注意的是隻有當酒量-飲酒數為負時才算醉倒。

程式碼:

#include<iostream>

using namespace std;

int main() {
	int za, zb, ashout, ah, bshout, bh;
	int n;
	cin >> za >> zb >> n;
	int a = za, b = zb;
	for (int i = 0; i < n; i++) {
		cin >> ashout >> ah >> bshout >> bh;
		int sum = ashout + bshout;
		if (ah == sum && bh != sum)
			a--;
		if (ah != sum && bh == sum)
			b--;
		if (a == -1 || b == -1) {
			char c = (a == -1 ? 'A' : 'B');
			int r = (a == -1 ? zb - b : za - a);
			cout << c << endl << r << endl;
			break;
		}
	}
	system("pause");
	return 0;
}