L1-7 机工士姆斯塔迪奥
输出格式:
输出一个数,表示安全格子的数量。
输入样例:
5 5 3
0 2
0 4
1 3
输出样例:
12
解题思路:分别统计要释放技能的行 r 和列c(测试点 :重复只算一次) ,我们可以用set来判断,然后结果就等于= 全部格子(N*M)- 全部行的格子(r *M)-全部列的格子(c *N)+列和行重复的格子(r *c);
#include<iostream>
#include<algorithm>
#include<string>
#include<set>
using namespace std;
set<int> h,l;
int main()
{
int N,M,Q;
cin>>N>>M>>Q;
int r=0,c=0;
for(int i=0;i<Q;i++)
{
int x,y;
cin>>x>>y;
if(x==0&&h.find(y)==h.end()){
h.insert(y);
r++;}
else if(x==1&&l.find(y)==l.end()){
l.insert(y);
c++;}
}
cout<<N*M-r*M-c*N+r*c;
}