小 C 正在用彩铅给一张 n 行 m 列的方格纸涂色。初始时所有方格都是空白的。他一共要进行 q 次涂色每次涂色会选取一行或一列给这一行或这一列的所有方格都添加 1 层颜色。小 C 喜欢浅色所以他会在每次涂色结束后把所有被涂上k 层颜色的方格的颜色都擦掉让这些方格都变成空白的。小 C 想知道在最终共有多少方格被涂上了颜色。输入格式:第一行四个整数nmqk接下来q行每行两个整数opx若 op=1则表
#include <iostream>
#include <vector>
using namespace std;
int main() {
int n, m, q, k;
cin >> n >> m >> q >> k;
vector<int> rows(n, 0);
vector<int> cols(m, 0);
int total = 0;
for (int i = 0; i < q; i++) {
int op, x;
cin >> op >> x;
if (op == 1) {
rows[x-1]++;
total += m - cols[x-1];
} else {
cols[x-1]++;
total += n - rows[x-1];
}
}
cout << total - k * min(n, m) << endl;
return 0;
}
``
原文地址: http://www.cveoy.top/t/topic/iPeI 著作权归作者所有。请勿转载和采集!