Submission #1540588
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
typedef signed long long ll;
#undef _P
#define _P(...) (void)printf(__VA_ARGS__)
#define FOR(x,to) for(x=0;x<(to);x++)
#define FORR(x,arr) for(auto& x:arr)
#define ITR(x,c) for(__typeof(c.begin()) x=c.begin();x!=c.end();x++)
#define ALL(a) (a.begin()),(a.end())
#define ZERO(a) memset(a,0,sizeof(a))
#define MINUS(a) memset(a,0xff,sizeof(a))
//-------------------------------------------------------
double d1,d2;
int X1,Y1,X2,Y2;
int N;
int XX[202020],YY[202020];
vector<int> LIS(vector<int>& v) {
int i,N=v.size();
vector<int> dp(N,1<<30),id(N);
FOR(i,v.size()) {
id[i] = lower_bound(dp.begin(),dp.end(),v[i]) - dp.begin();
dp[id[i]] = v[i];
}
int nl = *max_element(id.begin(),id.end());
vector<int> ret(nl+1);
FOR(i,N) if(id[N-1-i] == nl) ret[nl--] = v[N-1-i];
return ret;
}
void solve() {
int i,j,k,l,r,x,y; string s;
double PI=atan(1)*4;
d1=20-20*PI/4;
d2=20*PI/2-20;
cin>>X1>>Y1>>X2>>Y2;
cin>>N;
FOR(i,N) {
cin>>XX[i]>>YY[i];
if(XX[i]<min(X1,X2) || XX[i]>max(X1,X2) || YY[i]<min(Y1,Y2) || YY[i]>max(Y1,Y2)) i--,N--;
}
X2-=X1;
Y2-=Y1;
FOR(i,N) {
XX[i]-=X1;
if(X2<0) XX[i]=-XX[i];
YY[i]-=Y1;
if(Y2<0) YY[i]=-YY[i];
}
if(X2<0) X2=-X2;
if(Y2<0) Y2=-Y2;
double ret;
if(X2==0) {
ret=100.0*Y2+N*d2;
}
else if(Y2==0) {
ret=100.0*X2+N*d2;
}
else if(N) {
vector<pair<int,int>> V;
vector<int> V2;
FOR(i,N) V.push_back({XX[i],YY[i]});
sort(ALL(V));
FORR(v,V) V2.push_back(v.second);
auto V3=LIS(V2);
if(V3.size()==min(X2,Y2)+1) {
ret=100.0*(X2+Y2)-d1*(V3.size()-1)+d2;
}
else {
ret=100.0*(X2+Y2)-d1*V3.size();
}
}
else {
ret=100.0*(X2+Y2);
}
_P("%.12lf\n",ret);
}
int main(int argc,char** argv){
string s;int i;
if(argc==1) ios::sync_with_stdio(false), cin.tie(0);
FOR(i,argc-1) s+=argv[i+1],s+='\n'; FOR(i,s.size()) ungetc(s[s.size()-1-i],stdin);
cout.tie(0); solve(); return 0;
}
Submission Info
Submission Time |
|
Task |
C - Fountain Walk |
User |
kmjp |
Language |
C++14 (GCC 5.4.1) |
Score |
900 |
Code Size |
2028 Byte |
Status |
AC |
Exec Time |
70 ms |
Memory |
6768 KB |
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
900 / 900 |
Status |
|
|
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 |
14 ms |
256 KB |
subtask_1_10.txt |
AC |
28 ms |
256 KB |
subtask_1_11.txt |
AC |
8 ms |
256 KB |
subtask_1_12.txt |
AC |
69 ms |
6768 KB |
subtask_1_13.txt |
AC |
31 ms |
256 KB |
subtask_1_14.txt |
AC |
15 ms |
256 KB |
subtask_1_15.txt |
AC |
7 ms |
256 KB |
subtask_1_16.txt |
AC |
70 ms |
6768 KB |
subtask_1_17.txt |
AC |
25 ms |
256 KB |
subtask_1_18.txt |
AC |
20 ms |
256 KB |
subtask_1_19.txt |
AC |
20 ms |
384 KB |
subtask_1_20.txt |
AC |
67 ms |
6768 KB |
subtask_1_21.txt |
AC |
69 ms |
6768 KB |
subtask_1_22.txt |
AC |
69 ms |
6768 KB |
subtask_1_23.txt |
AC |
69 ms |
6768 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 |
36 ms |
512 KB |
subtask_1_29.txt |
AC |
39 ms |
488 KB |
subtask_1_30.txt |
AC |
70 ms |
6000 KB |
subtask_1_31.txt |
AC |
46 ms |
6000 KB |
subtask_1_32.txt |
AC |
53 ms |
6768 KB |
subtask_1_33.txt |
AC |
52 ms |
6384 KB |
subtask_1_34.txt |
AC |
46 ms |
6000 KB |
subtask_1_35.txt |
AC |
57 ms |
6000 KB |
subtask_1_36.txt |
AC |
59 ms |
6000 KB |
subtask_1_37.txt |
AC |
58 ms |
6512 KB |
subtask_1_38.txt |
AC |
57 ms |
6384 KB |
subtask_1_39.txt |
AC |
57 ms |
6256 KB |
subtask_1_40.txt |
AC |
54 ms |
6384 KB |
subtask_1_41.txt |
AC |
54 ms |
6384 KB |