Submission #1372381


Source Code Expand

#include<bits/stdc++.h>
#define sqr(x) ((x)*(x))
#define ll long long
#define ull unsigned long long
#define ui unsigned int
#define ld long double
#define vi vector<int>
#define pii pair<int,int>
#define pb push_back
#define mp make_pair
#define debuge cerr<<"isok"<<endl
#define debug(x) cerr<<#x<<"="<<x<<endl
#define SS second
#define FF first
#define ls (k<<1)
#define rs (k<<1|1)
#define inf 0x3f3f3f3f
#define clr(a,x) memset(a,x,sizeof(a))
#define cpy(a,x) memcpy(a,x,sizeof(a))
#define file(x) freopen(x".in","r",stdin),freopen(x".out","w",stdout);
using namespace std;
 
const int N=1050005,M=100005,mod=1e9+7;
template<class T> inline void gmin(T &x,const T &y){if(x>y) x=y;}
template<class T> inline void gmax(T &x,const T &y){if(x<y) x=y;}
inline void ch(int &x,int y){x=(x+y)%mod;}
inline void read(int &x){
	x=0;char ch=getchar(),rev=0;
	while(ch>'9'||ch<'0') rev=(ch=='-'),ch=getchar();
	while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
	x=rev?-x:x;
}
inline int exp(int x,int y){
	int ans=1;
	while(y){
		if(y&1) ans=(ll)ans*x%mod;
		x=(ll)x*x%mod;y>>=1;
	}return ans;
}
int w,h,n,cnt,ans,x[N],y[N],yy[N],sta[N][2],g[N][2],top[2];
int p[N<<2],flag[N<<2];
 
inline void ins(int x){if(x>=1&&x<h) yy[++cnt]=x;}
inline int get(int y){return lower_bound(yy+1,yy+cnt+1,y)-yy;}
inline void add(int k,int b){p[k]+=b;flag[k]+=b;}
inline void push(int k){
	if(!flag[k]) return;
	add(ls,flag[k]);add(rs,flag[k]);
	flag[k]=0;
}
void ch(int l,int r,int x,int y,int k,int b){
	if(x<=l&&r<=y){add(k,b);return;}
	push(k);
	int mid=l+r>>1;
	if(x<=mid) ch(l,mid,x,y,ls,b);
	if(y>mid) ch(mid+1,r,x,y,rs,b);
	p[k]=max(p[ls],p[rs]);
}
void build(int l,int r,int k){
	if(l==r){p[k]=-yy[l];return;}
	int mid=l+r>>1;
	build(l,mid,ls);build(mid+1,r,rs);
	p[k]=max(p[ls],p[rs]);
}
void solve(int mid){
	clr(flag,0);clr(top,0);cnt=0;
	ins(1);ins(h-1);
	for(int i=1;i<=n;i++){
		ins(y[i]);
		ins(y[i]-1);
		ins(y[i]+1);
	}
	sort(yy+1,yy+cnt+1);
	cnt=unique(yy+1,yy+cnt+1)-yy-1;
	build(1,cnt,1);
	for(int i=1;i<=cnt;i++)
		g[i][0]=mid,g[i][1]=w-mid;
	for(int i=1;i<=n;i++)
		if(x[i]<=mid) gmin(g[get(y[i])][0],mid-x[i]); else gmin(g[get(y[i])][1],x[i]-mid);
	for(int i=1;i<=cnt;i++){
		for(int x=0;x<2;x++){
			int last=i;
			ch(1,cnt,i,i,1,g[i][x]);
			while(top[x]&&g[sta[top[x]][x]][x]>g[i][x]){
				int l=sta[top[x]-1][x]+1,r=sta[top[x]][x];
				ch(1,cnt,l,r,1,g[i][x]-g[r][x]);
				top[x]--;
			}
			sta[++top[x]][x]=i;
		}
		gmax(ans,(p[1]+yy[i]+2)*2);
	}
}
 
int main(){
#ifdef rqgao2014
	freopen("input.txt","r",stdin);
#endif
	scanf("%d%d%d",&w,&h,&n);
	for(int i=1;i<=n;i++)
		scanf("%d%d",&x[i],&y[i]);
	solve(w/2);
	for(int i=1;i<=n;i++)
		swap(x[i],y[i]);
	swap(w,h);solve(w/2);
	printf("%d\n",max(ans,max(w,h)*2+2));
	return 0;
}

Submission Info

Submission Time
Task F - Snuke's Coloring 2
User rqgao2014
Language C++14 (GCC 5.4.1)
Score 0
Code Size 2841 Byte
Status RE
Exec Time 1569 ms
Memory 286976 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:99:26: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d",&w,&h,&n);
                          ^
./Main.cpp:101: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 0 / 1600
Status
AC × 4
AC × 55
WA × 1
RE × 1
Set Name Test Cases
sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All dia_01.txt, dia_02.txt, dia_03.txt, dia_04.txt, dial_01.txt, dial_02.txt, dial_03.txt, dial_04.txt, dial_05.txt, dial_06.txt, dialr_01.txt, dialr_02.txt, dialr_03.txt, dialr_04.txt, diar_01.txt, diar_02.txt, diar_03.txt, hand_01.txt, hand_02.txt, hand_03.txt, hand_04.txt, hand_05.txt, poc_t_1.txt, poc_t_2.txt, poc_t_3.txt, poc_t_4.txt, poc_t_5.txt, poc_w_1.txt, poc_w_2.txt, random0_01.txt, random0_02.txt, random0_03.txt, random1_01.txt, random1_02.txt, random1_03.txt, random1_04.txt, random1_05.txt, random1_06.txt, random1_07.txt, rect_01.txt, rect_02.txt, rect_03.txt, rect_04.txt, rect_05.txt, rect_06.txt, rect_07.txt, rect_08.txt, rect_09.txt, rect_10.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, x_01.txt, x_02.txt, x_03.txt, x_04.txt
Case Name Status Exec Time Memory
dia_01.txt AC 710 ms 37120 KB
dia_02.txt AC 709 ms 37120 KB
dia_03.txt AC 709 ms 37120 KB
dia_04.txt AC 713 ms 37120 KB
dial_01.txt AC 1009 ms 37120 KB
dial_02.txt AC 1085 ms 43264 KB
dial_03.txt AC 1013 ms 43264 KB
dial_04.txt AC 1163 ms 43264 KB
dial_05.txt AC 1167 ms 43264 KB
dial_06.txt AC 1164 ms 43264 KB
dialr_01.txt AC 921 ms 37120 KB
dialr_02.txt AC 893 ms 37120 KB
dialr_03.txt AC 871 ms 37120 KB
dialr_04.txt AC 893 ms 37120 KB
diar_01.txt AC 915 ms 37120 KB
diar_02.txt AC 1143 ms 43264 KB
diar_03.txt AC 1266 ms 45312 KB
hand_01.txt AC 9 ms 28928 KB
hand_02.txt AC 9 ms 28928 KB
hand_03.txt AC 9 ms 28928 KB
hand_04.txt AC 9 ms 28928 KB
hand_05.txt RE 227 ms 286976 KB
poc_t_1.txt AC 9 ms 28928 KB
poc_t_2.txt AC 9 ms 28928 KB
poc_t_3.txt AC 9 ms 28928 KB
poc_t_4.txt AC 9 ms 28928 KB
poc_t_5.txt AC 9 ms 28928 KB
poc_w_1.txt AC 10 ms 28928 KB
poc_w_2.txt AC 10 ms 28928 KB
random0_01.txt AC 729 ms 37120 KB
random0_02.txt AC 925 ms 37120 KB
random0_03.txt AC 1569 ms 45312 KB
random1_01.txt AC 780 ms 37120 KB
random1_02.txt AC 1151 ms 43264 KB
random1_03.txt AC 1292 ms 43264 KB
random1_04.txt AC 1482 ms 45312 KB
random1_05.txt AC 1567 ms 45312 KB
random1_06.txt AC 1104 ms 45312 KB
random1_07.txt AC 966 ms 43264 KB
rect_01.txt AC 1155 ms 43264 KB
rect_02.txt AC 1129 ms 43264 KB
rect_03.txt AC 1174 ms 43264 KB
rect_04.txt AC 1456 ms 47360 KB
rect_05.txt AC 1169 ms 43264 KB
rect_06.txt AC 831 ms 37120 KB
rect_07.txt AC 1178 ms 43264 KB
rect_08.txt AC 1178 ms 43264 KB
rect_09.txt AC 1185 ms 43264 KB
rect_10.txt WA 1186 ms 43264 KB
sample_01.txt AC 9 ms 28928 KB
sample_02.txt AC 9 ms 28928 KB
sample_03.txt AC 9 ms 28928 KB
sample_04.txt AC 9 ms 28928 KB
x_01.txt AC 613 ms 37120 KB
x_02.txt AC 613 ms 37120 KB
x_03.txt AC 612 ms 37120 KB
x_04.txt AC 617 ms 37120 KB