题意:
给一个n*n 的棋盘,之后给出m个坐标点,在这些坐标点上放炸弹,炸弹能消除该炸弹所在行和列的方格都受到伤害,每一次M操作后
都要输出没有被伤害的方格的数量。
输入:
3 3 1 1 3 1 2 2
5 2 1 5 5 1
100000 1 300 400
输出:
4 2 0
16 9
9999800001
分析:
将输入的坐标行列去重之后,用棋盘的行-行的个数*棋盘的列-列的个数,这就是没有受到伤害的方格的数量,用set,自动去重。
代码:
#include<bits/stdc++.h>
typedef long long LL;
using namespace std;
LL n,m,x,y;
set<LL>a,b;
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>x>>y;
a.insert(x);
b.insert(y);
cout<<(n-a.size())*(n-b.size())<<endl;
}
}