解题思路:用二维数组存储安全的格子剩多少,0代表安全,1代表不安全,开始时候所有格子都是安全的(即数组里的值都为0)
#include<bits/stdc++.h>
using namespace std;
int main(){
int N,M,Q;
cin>>N>>M>>Q;
int sum=0;
int a[N][M];
memset(a,0,sizeof(a));
for(int k=1;k<=Q;k++){
int T,C;
cin>>T>>C;
if(T){
for(int i=0;i<N;i++){
a[i][C-1]=1;
}
}
else{
for(int i=0;i<M;i++){
a[C-1][i]=1;
}
}
}
for(int i=0;i<N;i++){
for(int j=0;j<M;j++){
if(a[i][j]==0)
sum++;
}
}
cout<<sum;
}
运行结果: