测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25798. 填涂颜色

填空题 中等

题目描述

填涂颜色

题目描述

给定一个由 n 行 m 列的小方格组成的矩阵图形,接下来对该图形进行如下操作:1、先选择其中 x 行,将其填成黄色;2、再选择其中 y 列,将其填成黄色;填色完成后,请统计出有多少个小方格未被填色。

例如:矩阵图形由 4 行 5 列的小方格组成,先选择第 2、4 行将其填色,再选择第 1、3、5 列将其填色。

填色完成后,有 4 个小方格未被填色。

输入描述:共三行

第一行输入 4 个整数 n,m,x,y,分别表示矩阵的行数和列数以及选择填色的行数和列数 (1≤x≤n≤10000,1≤y≤m≤10000),整数之间以一个空格隔开

第二行输入 x 个不同的整数(1≤整数≤n),表示被填色的行号,整数之间以一个空格隔开

第三行输入 y 个不同的整数(1≤整数≤m),表示被填色的列号,整数之间以一个空格隔开

输出描述

输出一个整数,表示填色完成后未被填色的小方格数量

样例输入

4 5 2 3
2 4
1 3 5

样例输出

4

参考答案

#include <bits/stdc++.h> using namespace std; const int N = 10002; int col[N], row[N]; int main() { int n, m, x, y; cin >> n >> m >> x >> y; int c = 0, r = 0; for (int i = 1, a; i <= x; i++) { cin >> a; col[a]++; if (col[a] == 1) c++; } for (int i = 1, a; i <= y; i++) { cin >> a; row[a]++; if (row[a] == 1) r++; } cout << n * m - (c * m + r * n - c * r); return 0; }
上一题 下一题