Submission #1541706
Source Code Expand
#include <bits/stdc++.h>
#define fi first
#define se second
#define pb push_back
#define fio ios::sync_with_stdio(0),cin.tie(0),cout.tie(0)
using namespace std;
typedef pair<int,int> pii;
typedef vector<int> vi;
typedef vector<vi> vvi;
typedef long long ll;
// #define y1 asdf__y1;
const int N = 2e5+5;
pii P[N];
int X1,X2,Y1,Y2,n;
vector<pii> ir;
set<int> cc;
map<int,int> lab;
int A[N];
//point SET update, range MAX query
template <class T>
struct segt {
int N;
vector<T> t;
segt(int N):N(N),t(2*N){}
constexpr static T NONE = numeric_limits<T>::lowest();
static inline T combine(T a, T b) {return max(a,b);}
//update point i
void update(int i, T val) {
for(t[i+=N] = val;i>1;i>>=1)
t[i>>1] = combine(t[i],t[i^1]);
}
//query range [l,r]
T query(int l, int r) const {
T ans = NONE;
if(r < l) return 0;
for(l+=N,r+=N+1;l<r;l>>=1,r>>=1) {
if(l&1) ans = combine(ans,t[l++]);
if(r&1) ans = combine(ans,t[--r]);
}
return ans;
}
};
segt<int> t(0);
int main() {
scanf("%d%d%d%d",&X1,&Y1,&X2,&Y2);
scanf("%d",&n);
for(int i = 0; i < n; ++i)
scanf("%d%d",&P[i].fi,&P[i].se);
if(X1 > X2) {
X1 = -X1, X2 = -X2;
for(pii &p : P)
p.fi = -p.fi;
}
if(Y1 > Y2) {
Y1 = -Y1, Y2 = -Y2;
for(pii &p : P)
p.se = -p.se;
}
for(pii &p : P)
if(X1 <= p.fi && p.fi <= X2 && Y1 <= p.se && p.se <= Y2) {
ir.pb(p);
cc.insert(p.se);
}
int ctr = 0;
for(int a : cc)
lab[a] = ctr++;
sort(ir.begin(),ir.end());
n = ir.size();
t = segt<int>(n);
int ans = 0;
for(int i = 0; i < n; ++i) {
int a = lab[ir[i].se];
int bst = 1+t.query(0,a-1);
t.update(a,bst-t.query(a,a));
ans = max(ans,bst);
}
double pi = 2*acos(0);
double ra = double(Y2-Y1 + X2-X1) * 100.0;
if(ans == Y2-Y1+1 || ans == X2-X1+1) {
ra += 10*pi-20;
--ans;
}
ra += (5*pi-20) * ans;
printf("%.12lf\n",ra);
}
Submission Info
Submission Time |
|
Task |
C - Fountain Walk |
User |
cephian |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
1926 Byte |
Status |
WA |
Exec Time |
353 ms |
Memory |
25712 KB |
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:53:35: 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:54:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&n);
^
./Main.cpp:56:34: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d%d",&P[i].fi,&P[i].se);
^
Judge Result
Set Name |
Sample |
All |
Score / Max Score |
0 / 0 |
0 / 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 |
2 ms |
1792 KB |
sample_03.txt |
AC |
2 ms |
1792 KB |
subtask_1_01.txt |
AC |
15 ms |
3440 KB |
subtask_1_02.txt |
AC |
15 ms |
5104 KB |
subtask_1_03.txt |
AC |
15 ms |
5104 KB |
subtask_1_04.txt |
WA |
16 ms |
5104 KB |
subtask_1_05.txt |
WA |
15 ms |
5104 KB |
subtask_1_06.txt |
WA |
15 ms |
5104 KB |
subtask_1_07.txt |
AC |
2 ms |
1792 KB |
subtask_1_08.txt |
AC |
2 ms |
1792 KB |
subtask_1_09.txt |
AC |
15 ms |
768 KB |
subtask_1_10.txt |
AC |
30 ms |
1792 KB |
subtask_1_11.txt |
AC |
9 ms |
512 KB |
subtask_1_12.txt |
AC |
245 ms |
23664 KB |
subtask_1_13.txt |
AC |
32 ms |
1792 KB |
subtask_1_14.txt |
AC |
16 ms |
1792 KB |
subtask_1_15.txt |
AC |
8 ms |
512 KB |
subtask_1_16.txt |
AC |
249 ms |
23664 KB |
subtask_1_17.txt |
AC |
27 ms |
1792 KB |
subtask_1_18.txt |
AC |
21 ms |
1792 KB |
subtask_1_19.txt |
AC |
22 ms |
1920 KB |
subtask_1_20.txt |
AC |
246 ms |
23664 KB |
subtask_1_21.txt |
AC |
253 ms |
23664 KB |
subtask_1_22.txt |
AC |
247 ms |
23664 KB |
subtask_1_23.txt |
AC |
249 ms |
23664 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 |
41 ms |
2560 KB |
subtask_1_29.txt |
AC |
43 ms |
2432 KB |
subtask_1_30.txt |
WA |
345 ms |
23664 KB |
subtask_1_31.txt |
WA |
208 ms |
23664 KB |
subtask_1_32.txt |
WA |
203 ms |
23664 KB |
subtask_1_33.txt |
WA |
207 ms |
25712 KB |
subtask_1_34.txt |
WA |
191 ms |
23664 KB |
subtask_1_35.txt |
WA |
193 ms |
23664 KB |
subtask_1_36.txt |
WA |
353 ms |
23664 KB |
subtask_1_37.txt |
WA |
199 ms |
23664 KB |
subtask_1_38.txt |
WA |
195 ms |
23664 KB |
subtask_1_39.txt |
WA |
195 ms |
23664 KB |
subtask_1_40.txt |
WA |
194 ms |
23664 KB |
subtask_1_41.txt |
WA |
198 ms |
23664 KB |