Submission #1695506
Source Code Expand
#include<bits/stdc++.h>
#define maxn 100100
using namespace std;
typedef pair<int,int> par;
map<int,set<par> >a,b;
map<int,vector<par> >vx,vy;
int x[maxn],q[maxn],l,r,y[maxn],n,A,B;
long long ans;
void del(int x,int y,int bh){
a[x].erase(par(y,bh)),b[y].erase(par(x,bh));
}
void insx(int p,int l,int r){
ans+=upper_bound(vx[p].begin(),vx[p].end(),par(r,n+1))-lower_bound(vx[p].begin(),vx[p].end(),par(l,0));
set<par>::iterator bg=a[p].lower_bound(par(l,0));
set<par>::iterator ed=a[p].upper_bound(par(r,n+1));
// printf("[%d,%d,(%d,%d)]",bg->second,ed->second,l,r);
while(bg!=ed){
// printf("[ok,%d]",r);
set<par>::iterator it=bg;it++;
q[::r++]=bg->second,del(p,bg->first,bg->second),bg=it;
}
}
void insy(int p,int l,int r){
ans+=upper_bound(vy[p].begin(),vy[p].end(),par(r,n+1))-lower_bound(vy[p].begin(),vy[p].end(),par(l,0));
set<par>::iterator bg=b[p].lower_bound(par(l,0));
set<par>::iterator ed=b[p].upper_bound(par(r,n+1));
while(bg!=ed){
set<par>::iterator it=bg;it++;
q[::r++]=bg->second,del(bg->first,p,bg->second),bg=it;
}
}
int main(){
scanf("%d%d%d",&n,&A,&B);
for(int i=1;i<=n;++i){
scanf("%d%d",&x[i],&y[i]);
a[x[i]+y[i]].insert(par(x[i]-y[i],i));
b[x[i]-y[i]].insert(par(x[i]+y[i],i));
}
for(map<int,set<par> >::iterator mit=a.begin();mit!=a.end();mit++)
for(set<par>::iterator it=mit->second.begin();it!=mit->second.end();it++)
vx[mit->first].push_back(*it);
for(map<int,set<par> >::iterator mit=b.begin();mit!=b.end();mit++)
for(set<par>::iterator it=mit->second.begin();it!=mit->second.end();it++)
vy[mit->first].push_back(*it);
q[r++]=A,del(x[A]+y[A],x[A]-y[A],A);
int d=abs(x[A]-x[B])+abs(y[A]-y[B]);
while(l<r){
int nw=q[l++];
// printf("[(%d,%d)]\n",x[nw],y[nw]);
insx(x[nw]+y[nw]+d,x[nw]-y[nw]-(d-1),x[nw]-y[nw]+(d-1));
insx(x[nw]+y[nw]-d,x[nw]-y[nw]-(d-1),x[nw]-y[nw]+(d-1));
insy(x[nw]-y[nw]+d,x[nw]+y[nw]-d,x[nw]+y[nw]+d);
insy(x[nw]-y[nw]-d,x[nw]+y[nw]-d,x[nw]+y[nw]+d);
// printf("{%d,%d}",l,r);
}
printf("%lld",ans/2);
}
Submission Info
Submission Time
2017-10-20 23:22:10+0900
Task
E - Manhattan Compass
User
yfzcsc
Language
C++14 (GCC 5.4.1)
Score
900
Code Size
2066 Byte
Status
AC
Exec Time
923 ms
Memory
78080 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:34:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d%d",&n,&A,&B);
^
./Main.cpp:36:28: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&x[i],&y[i]);
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
900 / 900
Status
Set Name
Test Cases
Sample
subtask0_0.txt, subtask0_1.txt, subtask0_2.txt
All
subtask0_0.txt, subtask0_1.txt, subtask0_2.txt, subtask1_0.txt, subtask1_1.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask1_14.txt, subtask1_15.txt, subtask1_16.txt, subtask1_17.txt, subtask1_18.txt, subtask1_19.txt, subtask1_2.txt, subtask1_20.txt, subtask1_21.txt, subtask1_22.txt, subtask1_23.txt, subtask1_24.txt, subtask1_3.txt, subtask1_4.txt, subtask1_5.txt, subtask1_6.txt, subtask1_7.txt, subtask1_8.txt, subtask1_9.txt
Case Name
Status
Exec Time
Memory
subtask0_0.txt
AC
1 ms
256 KB
subtask0_1.txt
AC
1 ms
256 KB
subtask0_2.txt
AC
1 ms
256 KB
subtask1_0.txt
AC
415 ms
55420 KB
subtask1_1.txt
AC
413 ms
55420 KB
subtask1_10.txt
AC
682 ms
34048 KB
subtask1_11.txt
AC
87 ms
12928 KB
subtask1_12.txt
AC
154 ms
31224 KB
subtask1_13.txt
AC
154 ms
31228 KB
subtask1_14.txt
AC
923 ms
73600 KB
subtask1_15.txt
AC
86 ms
12928 KB
subtask1_16.txt
AC
431 ms
56824 KB
subtask1_17.txt
AC
436 ms
55672 KB
subtask1_18.txt
AC
252 ms
13440 KB
subtask1_19.txt
AC
86 ms
12928 KB
subtask1_2.txt
AC
771 ms
78080 KB
subtask1_20.txt
AC
440 ms
56444 KB
subtask1_21.txt
AC
429 ms
56572 KB
subtask1_22.txt
AC
264 ms
13440 KB
subtask1_23.txt
AC
269 ms
13312 KB
subtask1_24.txt
AC
447 ms
56700 KB
subtask1_3.txt
AC
192 ms
13056 KB
subtask1_4.txt
AC
438 ms
55932 KB
subtask1_5.txt
AC
437 ms
56188 KB
subtask1_6.txt
AC
293 ms
13824 KB
subtask1_7.txt
AC
181 ms
13056 KB
subtask1_8.txt
AC
147 ms
30844 KB
subtask1_9.txt
AC
427 ms
55548 KB