Official

B - Deconstruct Chocolate Editorial by cn449


クエリを前から順に処理します。

現在チョコレートが \(h\)\(w\) 列の長方形状であるとします。

タイプ \(1\) のクエリでは、下 \(R\) 行のチョコレートのブロックの個数は \(Rw\) 個であり、チョコレートは \(h - R\)\(w\) 列へと変化します。

タイプ \(2\) のクエリでは、右 \(C\) 列のチョコレートのブロックの個数は \(hC\) 個であり、チョコレートは \(h\)\(w - C\) 列へと変化します。

したがって、チョコレートの行・列の数を管理しながらシミュレーションを行うことで各クエリの答えを求めることができます。

実装例

#include <bits/stdc++.h>
using namespace std;

int main() {
	int h, w, q;
	cin >> h >> w >> q;
	while (q--) {
		int t;
		cin >> t;
		if (t == 1) {
			int r;
			cin >> r;
			cout << r * w << '\n';
			h -= r;
		}
		else {
			int c;
			cin >> c;
			cout << h * c << '\n';
			w -= c;
		}
	}
}

posted:
last update: