# |
Submission time |
Handle |
Problem |
Language |
Result |
Execution time |
Memory |
940865 |
2024-03-07T20:28:48 Z |
biank |
Aliens (IOI16_aliens) |
C++14 |
|
1 ms |
600 KB |
#include<bits/stdc++.h>
using namespace std;
#define all(x) begin(x),end(x)
#define sz(x) int(x.size())
#define forn(i,n) for(int i=0;i<int(n);i++)
using vi=vector<int>;
using ll=long long;
using ld=long double;
using ii=pair<int,int>;
#define fst first
#define snd second
struct Line {
ll m, b;
int k;
ll operator()(ll x) {
return m*x+b;
}
ld intersectX(Line &o) {
return ld(b-o.b)/(o.m-m);
}
};
struct LineContainer:deque<Line>{
void add(ll m, ll b, int k){
Line l=Line{m, b, k};
while(size()>=2&&l.intersectX(begin()[0])<=l.intersectX(begin()[1])) pop_front();
push_front(l);
}
pair<ll,int> query(ll x){
while(size()>=2&&end()[-1](x)>=end()[-2](x)) pop_back();
return {end()[-1](x),end()[-1].k};
}
};
vector<ii> p;
ll sq(ll x){
return x*x;
}
pair<ll,int> check(ll lmd){
LineContainer dp;
dp.add(-2*(p[0].snd-1),sq(p[0].snd-1),0);
ll res=0;
int cnt=0;
forn(i,sz(p)){
tie(res,cnt)=dp.query(p[i].fst);
res+=sq(p[i].fst)+lmd,cnt++;
if(i!=sz(p)-1) dp.add(-2*(p[i+1].snd-1),res-sq(max(p[i].fst-p[i+1].snd+1,0))+sq(p[i+1].snd-1),cnt);
}
return {res,cnt};
}
ll take_photos(int n, int /*m*/, int k, vi r, vi c){
vector<ii> v(n);
forn(i,n){
if(r[i]>c[i]) v[i]={r[i],c[i]};
else v[i]={c[i],r[i]};
}
sort(all(v));
forn(i,n){
while(!p.empty()&&p.back().snd>=v[i].snd) p.pop_back();
p.push_back(v[i]);
}
ll lo=0, hi=1e18;
ll ans=0;
while(hi-lo>1){
ll mid=(lo+hi)/2;
auto [res,cnt]=check(mid);
if(cnt<=k){
hi=mid;
ans=res-cnt*mid;
}else{
lo=mid;
}
}
return ans;
}
Compilation message
aliens.cpp: In function 'll take_photos(int, int, int, vi, vi)':
aliens.cpp:73:14: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
73 | auto [res,cnt]=check(mid);
| ^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
2 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
3 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
4 |
Correct |
0 ms |
440 KB |
Correct answer: answer = 12 |
5 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 52 |
6 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 210 |
7 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 88 |
8 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7696 |
9 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
10 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 2374 |
11 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 9502 |
12 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 49 |
13 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 151 |
14 |
Correct |
1 ms |
600 KB |
Correct answer: answer = 7550 |
15 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 7220 |
16 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7550 |
17 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
18 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 10000 |
19 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 624 |
20 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
2 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 4 |
3 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 1 |
4 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 5 |
5 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 41 |
6 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 71923 |
7 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 77137 |
8 |
Incorrect |
1 ms |
344 KB |
Wrong answer: output = 925, expected = 764 |
9 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
2 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
3 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
4 |
Correct |
0 ms |
440 KB |
Correct answer: answer = 12 |
5 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 52 |
6 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 210 |
7 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 88 |
8 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7696 |
9 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
10 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 2374 |
11 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 9502 |
12 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 49 |
13 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 151 |
14 |
Correct |
1 ms |
600 KB |
Correct answer: answer = 7550 |
15 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 7220 |
16 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7550 |
17 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
18 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 10000 |
19 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 624 |
20 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
21 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
22 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 4 |
23 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 1 |
24 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 5 |
25 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 41 |
26 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 71923 |
27 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 77137 |
28 |
Incorrect |
1 ms |
344 KB |
Wrong answer: output = 925, expected = 764 |
29 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
2 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
3 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
4 |
Correct |
0 ms |
440 KB |
Correct answer: answer = 12 |
5 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 52 |
6 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 210 |
7 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 88 |
8 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7696 |
9 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
10 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 2374 |
11 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 9502 |
12 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 49 |
13 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 151 |
14 |
Correct |
1 ms |
600 KB |
Correct answer: answer = 7550 |
15 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 7220 |
16 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7550 |
17 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
18 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 10000 |
19 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 624 |
20 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
21 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
22 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 4 |
23 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 1 |
24 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 5 |
25 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 41 |
26 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 71923 |
27 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 77137 |
28 |
Incorrect |
1 ms |
344 KB |
Wrong answer: output = 925, expected = 764 |
29 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
2 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
3 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
4 |
Correct |
0 ms |
440 KB |
Correct answer: answer = 12 |
5 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 52 |
6 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 210 |
7 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 88 |
8 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7696 |
9 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
10 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 2374 |
11 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 9502 |
12 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 49 |
13 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 151 |
14 |
Correct |
1 ms |
600 KB |
Correct answer: answer = 7550 |
15 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 7220 |
16 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7550 |
17 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
18 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 10000 |
19 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 624 |
20 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
21 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
22 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 4 |
23 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 1 |
24 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 5 |
25 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 41 |
26 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 71923 |
27 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 77137 |
28 |
Incorrect |
1 ms |
344 KB |
Wrong answer: output = 925, expected = 764 |
29 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
2 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
3 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 4 |
4 |
Correct |
0 ms |
440 KB |
Correct answer: answer = 12 |
5 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 52 |
6 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 210 |
7 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 88 |
8 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7696 |
9 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
10 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 2374 |
11 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 9502 |
12 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 49 |
13 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 151 |
14 |
Correct |
1 ms |
600 KB |
Correct answer: answer = 7550 |
15 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 7220 |
16 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 7550 |
17 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
18 |
Correct |
0 ms |
344 KB |
Correct answer: answer = 10000 |
19 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 624 |
20 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 10000 |
21 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 1 |
22 |
Correct |
1 ms |
344 KB |
Correct answer: answer = 4 |
23 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 1 |
24 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 5 |
25 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 41 |
26 |
Correct |
0 ms |
348 KB |
Correct answer: answer = 71923 |
27 |
Correct |
1 ms |
348 KB |
Correct answer: answer = 77137 |
28 |
Incorrect |
1 ms |
344 KB |
Wrong answer: output = 925, expected = 764 |
29 |
Halted |
0 ms |
0 KB |
- |