# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
56197 |
2018-07-10T08:39:05 Z |
노영훈(#1580) |
Mobile (BOI12_mobile) |
C++11 |
|
390 ms |
32776 KB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef long double lf;
typedef pair<ll, ll> pll;
const int MX=1000010, inf=2e9;
const ll linf=5e18;
int n;
ll l;
pll P[MX];
ll sq(ll x){ return x*x; }
lf itst(pll a, pll b){
lf dm=a.first-b.first, db=a.second-b.second;
return -db/dm;
}
lf eval(pll a, lf x){
return a.first*x + a.second + x*x;
}
int main(){
ios::sync_with_stdio(0); cin.tie(0);
cin>>n>>l;
for(int i=1; i<=n; i++){
ll x, y; cin>>x>>y;
P[i]={-2*x,x*x+y*y};
}
sort(P+1, P+n+1, [](pll &a, pll &b){
if(a.first==b.first) return a.second>b.second;
return a.first>b.first;
});
// for(int i=1; i<=n; i++) cout<<P[i].first<<' '<<P[i].second<<'\n';
vector<pll> stk; // m, b
// stk.push_back({0, linf});
for(int i=1; i<=n; i++){
pll now=P[i];
while(!stk.empty()){
pll prv=stk.back(); stk.pop_back();
if(now.first==prv.first) continue;
if(!stk.empty() && itst(stk.back(), prv)>=itst(prv, now)) continue;
else { stk.push_back(prv); break; }
}
stk.push_back(P[i]);
}
lf ans=0;
lf prv=-linf;
for(int i=1; i<(int)stk.size(); i++){
lf x=itst(stk[i-1], stk[i]);
// cout<<stk[i].first<<' '<<stk[i].second<<": "<<x<<'\n';
if(x<0){ prv=x; continue; }
if(prv<0){ ans=max(ans, eval(stk[i-1], 0)); }
if(x>l){ ans=max(ans, eval(stk[i-1], l)), prv=x; break; }
ans=max(ans, eval(stk[i], x));
prv=x;
}
if(prv<0) ans=max(ans, eval(stk.back(), 0));
if(prv<l) ans=max(ans, eval(stk.back(), l));
/*
lf prv=-linf, ans=0;
for(int i=1; i<(int)stk.size(); i++){
lf now=itst(stk[i], stk[i-1]);
// cout<<now<<'\n';
// cout<<now<<' '<<eval(stk[i], now)<<'\n';
if(now<0) continue;
if(prv<0 && 0<=now){
prv=now;
ans=max(ans, eval(stk[i-1], 0));
}
if(l<now){
ans=max(ans, eval(stk[i-1], l));
break;
}
// cout<<now<<' '<<eval(stk[i], now)<<'\n';
ans=max(ans, eval(stk[i], now));
// cout<<'\n';
}
// cout<<'\n';
// for(int i=0; i<(int)stk.size(); i++) cout<<stk[i].first<<' '<<stk[i].second<<'\n';
// if(stk.size()==1U) ans=max({ans, eval(stk[0], 0), eval(stk[0], l)});
// if(stk.size()>1U && itst(stk[0], stk[1])<=0) ans=max(ans, eval(stk[0], 0));
// if(stk.size()>1U && itst(stk.back(), stk[stk.size()-2])>=l) ans=max(ans, eval(stk.back(), l));
*/
cout.precision(5);
cout<<fixed<<sqrtl(ans);
return 0;
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
2 |
Correct |
3 ms |
376 KB |
Output is correct |
3 |
Correct |
3 ms |
540 KB |
Output is correct |
4 |
Correct |
3 ms |
540 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
540 KB |
Output is correct |
2 |
Correct |
2 ms |
540 KB |
Output is correct |
3 |
Correct |
2 ms |
632 KB |
Output is correct |
4 |
Correct |
2 ms |
632 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
632 KB |
Output is correct |
2 |
Correct |
3 ms |
672 KB |
Output is correct |
3 |
Correct |
3 ms |
672 KB |
Output is correct |
4 |
Correct |
3 ms |
672 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
672 KB |
Output is correct |
2 |
Correct |
4 ms |
672 KB |
Output is correct |
3 |
Correct |
4 ms |
672 KB |
Output is correct |
4 |
Correct |
4 ms |
672 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
748 KB |
Output is correct |
2 |
Correct |
5 ms |
748 KB |
Output is correct |
3 |
Correct |
5 ms |
748 KB |
Output is correct |
4 |
Correct |
4 ms |
748 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
748 KB |
Output is correct |
2 |
Correct |
4 ms |
748 KB |
Output is correct |
3 |
Correct |
3 ms |
748 KB |
Output is correct |
4 |
Correct |
4 ms |
748 KB |
Output is correct |
5 |
Correct |
4 ms |
748 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
23 ms |
2028 KB |
Output is correct |
2 |
Correct |
23 ms |
2028 KB |
Output is correct |
3 |
Correct |
16 ms |
2028 KB |
Output is correct |
4 |
Correct |
25 ms |
2028 KB |
Output is correct |
5 |
Correct |
15 ms |
2028 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
24 ms |
2028 KB |
Output is correct |
2 |
Correct |
22 ms |
2028 KB |
Output is correct |
3 |
Correct |
26 ms |
2028 KB |
Output is correct |
4 |
Correct |
25 ms |
2028 KB |
Output is correct |
5 |
Correct |
28 ms |
2028 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
23 ms |
4180 KB |
Output is correct |
2 |
Correct |
28 ms |
4180 KB |
Output is correct |
3 |
Correct |
25 ms |
4208 KB |
Output is correct |
4 |
Correct |
38 ms |
4208 KB |
Output is correct |
5 |
Correct |
26 ms |
4208 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
32 ms |
4208 KB |
Output is correct |
2 |
Correct |
30 ms |
4208 KB |
Output is correct |
3 |
Correct |
34 ms |
4208 KB |
Output is correct |
4 |
Correct |
58 ms |
4208 KB |
Output is correct |
5 |
Correct |
30 ms |
4208 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
30 ms |
4208 KB |
Output is correct |
2 |
Correct |
40 ms |
4208 KB |
Output is correct |
3 |
Correct |
30 ms |
4208 KB |
Output is correct |
4 |
Correct |
47 ms |
4208 KB |
Output is correct |
5 |
Correct |
53 ms |
4208 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
144 ms |
16744 KB |
Output is correct |
2 |
Correct |
210 ms |
16744 KB |
Output is correct |
3 |
Correct |
161 ms |
16744 KB |
Output is correct |
4 |
Correct |
205 ms |
16744 KB |
Output is correct |
5 |
Correct |
160 ms |
16744 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
194 ms |
16744 KB |
Output is correct |
2 |
Correct |
176 ms |
16744 KB |
Output is correct |
3 |
Correct |
180 ms |
16744 KB |
Output is correct |
4 |
Correct |
236 ms |
16744 KB |
Output is correct |
5 |
Correct |
186 ms |
16744 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
214 ms |
26584 KB |
Output is correct |
2 |
Correct |
237 ms |
26584 KB |
Output is correct |
3 |
Correct |
198 ms |
26584 KB |
Output is correct |
4 |
Correct |
261 ms |
26584 KB |
Output is correct |
5 |
Correct |
208 ms |
26584 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
191 ms |
26584 KB |
Output is correct |
2 |
Correct |
186 ms |
26584 KB |
Output is correct |
3 |
Correct |
157 ms |
26584 KB |
Output is correct |
4 |
Correct |
213 ms |
26584 KB |
Output is correct |
5 |
Correct |
210 ms |
26584 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
194 ms |
28084 KB |
Output is correct |
2 |
Correct |
211 ms |
28084 KB |
Output is correct |
3 |
Correct |
274 ms |
28084 KB |
Output is correct |
4 |
Correct |
270 ms |
28084 KB |
Output is correct |
5 |
Correct |
298 ms |
28084 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
221 ms |
28084 KB |
Output is correct |
2 |
Correct |
266 ms |
28084 KB |
Output is correct |
3 |
Correct |
248 ms |
28084 KB |
Output is correct |
4 |
Correct |
321 ms |
28084 KB |
Output is correct |
5 |
Correct |
253 ms |
28084 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
215 ms |
29740 KB |
Output is correct |
2 |
Correct |
300 ms |
29740 KB |
Output is correct |
3 |
Correct |
270 ms |
29740 KB |
Output is correct |
4 |
Correct |
333 ms |
29740 KB |
Output is correct |
5 |
Correct |
310 ms |
29740 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
249 ms |
29740 KB |
Output is correct |
2 |
Correct |
277 ms |
29740 KB |
Output is correct |
3 |
Correct |
320 ms |
29740 KB |
Output is correct |
4 |
Correct |
332 ms |
29740 KB |
Output is correct |
5 |
Correct |
255 ms |
29740 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
290 ms |
32776 KB |
Output is correct |
2 |
Correct |
352 ms |
32776 KB |
Output is correct |
3 |
Correct |
355 ms |
32776 KB |
Output is correct |
4 |
Correct |
390 ms |
32776 KB |
Output is correct |
5 |
Correct |
365 ms |
32776 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
346 ms |
32776 KB |
Output is correct |
2 |
Correct |
300 ms |
32776 KB |
Output is correct |
3 |
Correct |
266 ms |
32776 KB |
Output is correct |
4 |
Correct |
370 ms |
32776 KB |
Output is correct |
5 |
Correct |
322 ms |
32776 KB |
Output is correct |