https://www.hackerrank.com/contests/joi2018/challenges/rage-of-azerbaijan-citizens
解説
Xの城がYの城を攻撃するのも、Yの城がXの城を攻撃するのも変わらないので、
D=2のときは、DkとPkを入れ替えて、全てD=1のようにして処理する。
あとは、ルールに従って、人数を減らせば良い。
最後に総和を取って答え。
int N, M; ll A[101], B[101]; int T; //--------------------------------------------------------------------------------------------------- void _main() { cin >> N >> M; rep(i, 0, N) cin >> A[i]; rep(i, 0, M) cin >> B[i]; cin >> T; rep(t, 0, T) { int D, a, b; cin >> D >> a >> b; a--; b--; if (D == 2) swap(a, b); if (A[a] <= B[b]) { B[b] -= A[a]; A[a] = 0; } else { A[a] -= B[b]; B[b] = 0; } } ll sm_a = 0, sm_b = 0; rep(i, 0, N) sm_a += A[i]; rep(i, 0, M) sm_b += B[i]; cout << sm_a << endl << sm_b << endl; }