A - Trapezoids
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
int main() {
ios::sync_with_stdio(false), cin.tie(nullptr);
int a, b, h;
cin >> a >> b >> h;
cout << (a + b) * h / 2;
return 0;
}
B - Card Game for Three (ABC Edit)
\(p[]\) 為當前牌堆頂指標。
\(\rm k\) 記錄當前要從哪個牌堆抽牌(因為Alice先開始,所以初值為0)
看當前牌堆頂指標是否已經指到 \(len[k]\) 處,如果是則說明當前牌堆已空。
否則的話就把 \(k\) 指向當前牌堆頂的字母所指的牌堆,同時當前牌堆頂指標後移一位。
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
int p[3];
int main() {
ios::sync_with_stdio(false), cin.tie(nullptr);
string s[3];
cin >> s[0] >> s[1] >> s[2];
int len[3];
len[0] = s[0].size(), len[1] = s[1].size(), len[2] = s[2].size();
int k = 0;
while (1) {
if (p[k] == len[k]) {
cout << char(k + 'A');
break;
}
k = s[k][p[k]++] - 'a';//這裡 p[k]++ 必須寫在裡面,否則k更新後再改變的就是新牌堆的堆頂指標了
}
return 0;
}