Submission #1545882


Source Code Expand

#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <vector>
#include <cstring>
#include <queue>
#include <functional>
#include <map>
#include <set>
#define SIZE 200005
#define INF 1000000000
#define PI 3.1415926535897932384626

using namespace std;
typedef long long int ll;
typedef pair <int,int> P;
typedef long double ld;

int dp[SIZE];
int n;

double solve(vector <P> vx,int x1,int x2,int y1,int y2)
{
	vector <P> vec;
	for(int i=0;i<n;i++)
	{
		int x=vx[i].first,y=vx[i].second;
		if(min(x1,x2)<=x&&x<=max(x1,x2)&&min(y1,y2)<=y&&y<=max(y1,y2))
		{
			vec.push_back(P(x,y));
		}
	}
	double ret=100.0*(ll) (abs(x1-x2)+abs(y1-y2));
	if(x1>x2)
	{
		swap(x1,x2);
		swap(y1,y2);
	}
	if(y1>y2)
	{
		for(int i=0;i<vec.size();i++) vec[i].second*=-1;
		y1*=-1,y2*=-1;
	}
	int sz=vec.size()+1;
	for(int i=0;i<sz;i++) dp[i]=INF;
	dp[0]=-INF;
	sort(vec.begin(),vec.end());
	double mn=20.0-5.0*PI;
	double add=10.0*PI-20.0;
	for(int i=0;i<vec.size();i++)
	{
		int y=vec[i].second;
		int pos=lower_bound(dp,dp+sz,y)-dp;
		dp[pos]=y;
	}
	int len=0;
	for(int i=0;i<sz;i++) if(dp[i]<INF) len=i;
	ret-=len*mn;
	if(len==min(x2-x1,y2-y1)+1) ret+=mn+add;
	return ret;
}
int main()
{
	int x1,x2,y1,y2;
	scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
	scanf("%d",&n);
	vector <P> vx;
	for(int i=0;i<n;i++)
	{
		int x,y;
		scanf("%d %d",&x,&y);
		vx.push_back(P(x,y));
	}
	double ret=solve(vx,x1,x2,y1,y2);
	printf("%.12f\n",ret);
	return 0;
}

Submission Info

Submission Time
Task C - Fountain Walk
User yutaka1999
Language C++14 (GCC 5.4.1)
Score 900
Code Size 1508 Byte
Status AC
Exec Time 71 ms
Memory 6384 KB

Compile Error

./Main.cpp: In function ‘int main()’:
./Main.cpp:65:38: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d %d %d",&x1,&y1,&x2,&y2);
                                      ^
./Main.cpp:66:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d",&n);
                ^
./Main.cpp:71:23: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
   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 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1 ms 256 KB
subtask_1_01.txt AC 1 ms 256 KB
subtask_1_02.txt AC 1 ms 256 KB
subtask_1_03.txt AC 1 ms 256 KB
subtask_1_04.txt AC 1 ms 256 KB
subtask_1_05.txt AC 1 ms 256 KB
subtask_1_06.txt AC 1 ms 256 KB
subtask_1_07.txt AC 1 ms 256 KB
subtask_1_08.txt AC 1 ms 256 KB
subtask_1_09.txt AC 15 ms 1400 KB
subtask_1_10.txt AC 31 ms 2672 KB
subtask_1_11.txt AC 9 ms 892 KB
subtask_1_12.txt AC 70 ms 6384 KB
subtask_1_13.txt AC 34 ms 2800 KB
subtask_1_14.txt AC 16 ms 1524 KB
subtask_1_15.txt AC 8 ms 892 KB
subtask_1_16.txt AC 70 ms 6384 KB
subtask_1_17.txt AC 27 ms 2420 KB
subtask_1_18.txt AC 22 ms 1908 KB
subtask_1_19.txt AC 22 ms 1908 KB
subtask_1_20.txt AC 68 ms 6384 KB
subtask_1_21.txt AC 70 ms 6384 KB
subtask_1_22.txt AC 71 ms 6384 KB
subtask_1_23.txt AC 70 ms 6384 KB
subtask_1_24.txt AC 1 ms 256 KB
subtask_1_25.txt AC 1 ms 256 KB
subtask_1_26.txt AC 1 ms 256 KB
subtask_1_27.txt AC 1 ms 256 KB
subtask_1_28.txt AC 42 ms 3568 KB
subtask_1_29.txt AC 43 ms 3440 KB
subtask_1_30.txt AC 71 ms 6384 KB
subtask_1_31.txt AC 47 ms 6384 KB
subtask_1_32.txt AC 54 ms 6384 KB
subtask_1_33.txt AC 52 ms 6384 KB
subtask_1_34.txt AC 48 ms 6384 KB
subtask_1_35.txt AC 58 ms 6384 KB
subtask_1_36.txt AC 59 ms 6384 KB
subtask_1_37.txt AC 60 ms 6384 KB
subtask_1_38.txt AC 59 ms 6384 KB
subtask_1_39.txt AC 58 ms 6384 KB
subtask_1_40.txt AC 56 ms 6384 KB
subtask_1_41.txt AC 55 ms 6384 KB