set的用法
Cross Explosion - 洛谷#include "bits/stdc++.h"
#define int long long
using namespace std;
const int N=1000000;
set <int> h, w;
signed main () {
ios::sync_with_stdio (false);
cin.tie (0); cout.tie (0);
int n,m,q;
cin >> n >> m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
h.insert(j),w.insert(i);
cin>>q;
while(q--)
{
int x,y;
cin>>x>>y;
if(h.find(y)!=h.end())
{
h.erase(y);
w.erase(x);
}
else
{
auto i=h.lower_bound(y);
vector<int>v;
if(i!=h.end()) v.push_back(*i);
if(i!=h.begin()) v.push_back(*(--i));
for(auto j:v)
h.erase(j),w.erase(x);
v.clear();
i=w.lower_bound(x);
if(i!=w.end())
v.push_back(*i);
if(i!=w.begin())
v.push_back(*(--i));
for(auto j:v)
w.erase(j),h.erase(y);
}
}
int ans=0;
for(int i=1;i<=n;i++)
ans+=h.size();
cout<<ans;
return 0;
}
//for(auto it=s.begin();it!=s.end();it++)
//cout<<*it;//
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]