题目描述
给定一个由 n 行 m 列的小方格组成的矩阵图形,接下来对该图形进行如下操作:
先选择其中 x 行,将其填成黄色;
再选择其中 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
AC代码
#include<bits/stdc++.h>
using namespace std;
int b[10002],c[10002];
int main(){
int n,m,x,y;
int h,l,sum=0,sum1=0;
cin>>n>>m>>x>>y;
for(int i=1;i<=x;i++){
cin>>h;
b[h]+=1;
if(b[h]==1){
sum++;
}
}
for(int i=1;i<=y;i++){
cin>>l;
c[l]+=1;
if(c[l]==1){
sum1++;
}
}
cout<<n*m-(sum*m+sum1*n-sum*sum1);
return 0;
}