Submission #1752977


Source Code Expand

#include<stdio.h>
#include<math.h>
#include<algorithm>
#include<queue>
#include<deque>
#include<string>
#include<string.h>
#include<vector>
#include<set>
#include<map>
#include<stdlib.h>
#include<cassert>
using namespace std;
const long long mod=1000000009;
const long long inf=mod*mod;
const long long d2=500000004;
const double EPS=1e-10;
const double PI=acos(-1.0);
int ABS(int a){return max(a,-a);}
long long ABS(long long a){return max(a,-a);}
int p[210000];
int q[210000];
pair<int,int>z[210000];
int segtree[524288];
int query(int a,int b,int c,int d,int e){
	if(d<a||b<c)return -mod;
	if(c<=a&&b<=d)return segtree[e];
	return max(query(a,(a+b)/2,c,d,e*2),query((a+b)/2+1,b,c,d,e*2+1));
}
void update(int a,int b){
	a+=262144;
	while(a){
		segtree[a]=max(segtree[a],b);
		a/=2;
	}
}
int main(){
	int X0,X1,Y0,Y1;
	scanf("%d%d%d%d",&X0,&Y0,&X1,&Y1);
	int a;scanf("%d",&a);
	int sz=0;
	for(int i=0;i<a;i++){
		int x,y;scanf("%d%d",&x,&y);
		if(x<min(X0,X1)||x>max(X0,X1)||y<min(Y0,Y1)||y>max(Y0,Y1))continue;
		z[sz]=make_pair(x,y);
		p[sz]=x;
		q[sz++]=y;
 
	}
	long double ret=0;
	std::sort(z,z+sz);
	if(X0==X1){
		 ret=100.0*ABS(Y0-Y1);
		ret+=sz*(10*PI-20);
	}else if(Y0==Y1){
		ret=100.0*ABS(X0-X1);
		ret+=sz*(10*PI-20);
	}else{
		if(X0>X1){
			swap(X0,X1);
			swap(Y0,Y1);
		}
		std::sort(q,q+sz);
		int val=0;
		if(Y0<Y1){
			for(int i=0;i<sz;i++){
				int at=lower_bound(q,q+sz,z[i].second)-q;
				int tmp=query(0,262143,0,at,1)+1;
				val=max(val,tmp);
				update(at,tmp);
			}
		}else{
			for(int i=0;i<sz;i++){
				int at=lower_bound(q,q+sz,z[i].second)-q;
				int tmp=query(0,262143,at,sz-1,1)+1;
				val=max(val,tmp);
				update(at,tmp);
			}
		}
		if(val>min(ABS(Y0-Y1),ABS(X0-X1))){
			ret+=(10*PI-20);val--;
		}
		ret+=100.0*(ABS(Y0-Y1)+ABS(X0-X1));
		ret-=val*20.0;
		ret+=val*5*PI;
	}
	printf("%.18Lf\n",ret);
}

Submission Info

Submission Time
Task C - Fountain Walk
User tozangezan
Language C++14 (GCC 5.4.1)
Score 900
Code Size 1922 Byte
Status AC
Exec Time 142 ms
Memory 4992 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:39:35: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d%d",&X0,&Y0,&X1,&Y1);
                                   ^
./Main.cpp:40:22: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  int a;scanf("%d",&a);
                      ^
./Main.cpp:43:30: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   int x,y;scanf("%d%d",&x,&y);
                              ^

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 900 / 900
Status
AC × 3
AC × 47
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_01.txt, sample_02.txt, sample_03.txt, subtask_1_01.txt, subtask_1_02.txt, subtask_1_03.txt, subtask_1_04.txt, subtask_1_05.txt, subtask_1_06.txt, subtask_1_07.txt, subtask_1_08.txt, subtask_1_09.txt, subtask_1_10.txt, subtask_1_11.txt, subtask_1_12.txt, subtask_1_13.txt, subtask_1_14.txt, subtask_1_15.txt, subtask_1_16.txt, subtask_1_17.txt, subtask_1_18.txt, subtask_1_19.txt, subtask_1_20.txt, subtask_1_21.txt, subtask_1_22.txt, subtask_1_23.txt, subtask_1_24.txt, subtask_1_25.txt, subtask_1_26.txt, subtask_1_27.txt, subtask_1_28.txt, subtask_1_29.txt, subtask_1_30.txt, subtask_1_31.txt, subtask_1_32.txt, subtask_1_33.txt, subtask_1_34.txt, subtask_1_35.txt, subtask_1_36.txt, subtask_1_37.txt, subtask_1_38.txt, subtask_1_39.txt, subtask_1_40.txt, subtask_1_41.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 2304 KB
sample_02.txt AC 1 ms 128 KB
sample_03.txt AC 1 ms 2176 KB
subtask_1_01.txt AC 1 ms 2304 KB
subtask_1_02.txt AC 1 ms 2304 KB
subtask_1_03.txt AC 1 ms 2304 KB
subtask_1_04.txt AC 1 ms 2304 KB
subtask_1_05.txt AC 1 ms 128 KB
subtask_1_06.txt AC 1 ms 128 KB
subtask_1_07.txt AC 1 ms 128 KB
subtask_1_08.txt AC 1 ms 128 KB
subtask_1_09.txt AC 14 ms 2176 KB
subtask_1_10.txt AC 29 ms 2304 KB
subtask_1_11.txt AC 8 ms 2304 KB
subtask_1_12.txt AC 114 ms 4992 KB
subtask_1_13.txt AC 31 ms 2176 KB
subtask_1_14.txt AC 15 ms 2304 KB
subtask_1_15.txt AC 7 ms 2304 KB
subtask_1_16.txt AC 114 ms 4992 KB
subtask_1_17.txt AC 25 ms 2304 KB
subtask_1_18.txt AC 20 ms 2304 KB
subtask_1_19.txt AC 20 ms 2304 KB
subtask_1_20.txt AC 112 ms 4992 KB
subtask_1_21.txt AC 114 ms 4992 KB
subtask_1_22.txt AC 126 ms 4992 KB
subtask_1_23.txt AC 126 ms 4992 KB
subtask_1_24.txt AC 1 ms 128 KB
subtask_1_25.txt AC 1 ms 128 KB
subtask_1_26.txt AC 1 ms 128 KB
subtask_1_27.txt AC 1 ms 128 KB
subtask_1_28.txt AC 38 ms 2304 KB
subtask_1_29.txt AC 42 ms 2304 KB
subtask_1_30.txt AC 142 ms 4992 KB
subtask_1_31.txt AC 87 ms 4992 KB
subtask_1_32.txt AC 88 ms 4992 KB
subtask_1_33.txt AC 88 ms 4992 KB
subtask_1_34.txt AC 97 ms 4992 KB
subtask_1_35.txt AC 98 ms 4992 KB
subtask_1_36.txt AC 130 ms 4992 KB
subtask_1_37.txt AC 99 ms 4992 KB
subtask_1_38.txt AC 92 ms 4992 KB
subtask_1_39.txt AC 103 ms 4992 KB
subtask_1_40.txt AC 93 ms 4992 KB
subtask_1_41.txt AC 93 ms 4992 KB