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
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
AC × 3
AC × 28
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