#include "aliens.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
#define debug(x) {cerr<<#x<<"="<<x<<"\n";}
#define debug2(x, y) {cerr<<#x<<", "<<#y<<" = "<<x<<", "<<y<<"\n";}
#define debugp(p) {cerr<<#p<<"={"<<p.first<<", "<<p.second<<"}\n";}
#define pb push_back
#define all(x) x.begin(), x.end()
const int inf=1000001000;
const ll INF=10000000010000000;
const int MAXN=100010, K=103;
int n, m, k;
pii A[MAXN];
ll dp[4010][4010];
ll Inter(pll a, pll b){
if (a.first==b.first) return (a.second<=b.second?-INF:INF);
return (a.second-b.second)/(b.first-a.first) + ((a.second-b.second)%(b.first-a.first)>0);
}
struct CHT{
pair<ll, pll> A[MAXN];
int sz;
inline void Add(pll x){
while (sz && Inter(A[sz-1].second, x)<=A[sz-1].first) sz--;
if (!sz) A[sz++]={-INF, x};
else A[sz]={Inter(A[sz-1].second, x), x}, sz++;
}
inline ll Get(ll x){
pll p=(upper_bound(A, A+sz, make_pair(x, pll(INF, INF)))-1)->second;
return p.first*x+p.second;
}
} cht[K];
inline ll _sq(ll x){ return x*x;}
ll take_photos(int _n, int _m, int _k, vector<int> r, vector<int> c) {
k=_k;
m=_m;
vector<pii> vec;
for (int i=0; i<_n; i++) vec.pb({min(r[i], c[i]), max(r[i], c[i])});
sort(all(vec), [](pii i, pii j){
if (i.second!=j.second) return i.second<j.second;
return i.first>j.first;
});
for (pii p:vec){
while (n && p.first<=A[n].first) n--;
A[++n]=p;
}
// for (int i=1; i<=n; i++) debugp(A[i])
k=min(k, n);
memset(dp, 63, sizeof(dp));
for (int i=0; i<=k; i++) dp[0][i]=0;
for (int i=1; i<=n; i++){
for (int t=0; t<k; t++){
ll val=_sq(A[i].first)+dp[i-1][t];
if (i!=1 && A[i].first<=A[i-1].second) val-=_sq(A[i-1].second-A[i].first+1);
cht[t].Add({A[i].first, -val});
}
for (int t=1; t<=k; t++){
dp[i][t]=_sq(A[i].second+1)-cht[t-1].Get(2*A[i].second+2);
}
}
return dp[n][k];
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
224 ms |
367996 KB |
Correct answer: answer = 4 |
2 |
Correct |
164 ms |
368084 KB |
Correct answer: answer = 4 |
3 |
Correct |
163 ms |
368140 KB |
Correct answer: answer = 4 |
4 |
Correct |
182 ms |
367944 KB |
Correct answer: answer = 12 |
5 |
Correct |
163 ms |
367940 KB |
Correct answer: answer = 52 |
6 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 210 |
7 |
Correct |
164 ms |
367940 KB |
Correct answer: answer = 88 |
8 |
Correct |
163 ms |
367980 KB |
Correct answer: answer = 7696 |
9 |
Correct |
171 ms |
368048 KB |
Correct answer: answer = 1 |
10 |
Correct |
161 ms |
368064 KB |
Correct answer: answer = 2374 |
11 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 9502 |
12 |
Correct |
165 ms |
368028 KB |
Correct answer: answer = 49 |
13 |
Correct |
180 ms |
368068 KB |
Correct answer: answer = 151 |
14 |
Correct |
176 ms |
368068 KB |
Correct answer: answer = 7550 |
15 |
Correct |
163 ms |
368060 KB |
Correct answer: answer = 7220 |
16 |
Correct |
162 ms |
368024 KB |
Correct answer: answer = 7550 |
17 |
Correct |
163 ms |
368068 KB |
Correct answer: answer = 10000 |
18 |
Correct |
167 ms |
367976 KB |
Correct answer: answer = 10000 |
19 |
Correct |
167 ms |
367940 KB |
Correct answer: answer = 624 |
20 |
Correct |
162 ms |
368056 KB |
Correct answer: answer = 10000 |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
171 ms |
368208 KB |
Correct answer: answer = 1 |
2 |
Correct |
166 ms |
367960 KB |
Correct answer: answer = 4 |
3 |
Correct |
165 ms |
367968 KB |
Correct answer: answer = 1 |
4 |
Correct |
163 ms |
368004 KB |
Correct answer: answer = 5 |
5 |
Correct |
166 ms |
368068 KB |
Correct answer: answer = 41 |
6 |
Correct |
162 ms |
367960 KB |
Correct answer: answer = 71923 |
7 |
Correct |
161 ms |
368032 KB |
Correct answer: answer = 77137 |
8 |
Runtime error |
661 ms |
708392 KB |
Execution killed with signal 11 |
9 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
224 ms |
367996 KB |
Correct answer: answer = 4 |
2 |
Correct |
164 ms |
368084 KB |
Correct answer: answer = 4 |
3 |
Correct |
163 ms |
368140 KB |
Correct answer: answer = 4 |
4 |
Correct |
182 ms |
367944 KB |
Correct answer: answer = 12 |
5 |
Correct |
163 ms |
367940 KB |
Correct answer: answer = 52 |
6 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 210 |
7 |
Correct |
164 ms |
367940 KB |
Correct answer: answer = 88 |
8 |
Correct |
163 ms |
367980 KB |
Correct answer: answer = 7696 |
9 |
Correct |
171 ms |
368048 KB |
Correct answer: answer = 1 |
10 |
Correct |
161 ms |
368064 KB |
Correct answer: answer = 2374 |
11 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 9502 |
12 |
Correct |
165 ms |
368028 KB |
Correct answer: answer = 49 |
13 |
Correct |
180 ms |
368068 KB |
Correct answer: answer = 151 |
14 |
Correct |
176 ms |
368068 KB |
Correct answer: answer = 7550 |
15 |
Correct |
163 ms |
368060 KB |
Correct answer: answer = 7220 |
16 |
Correct |
162 ms |
368024 KB |
Correct answer: answer = 7550 |
17 |
Correct |
163 ms |
368068 KB |
Correct answer: answer = 10000 |
18 |
Correct |
167 ms |
367976 KB |
Correct answer: answer = 10000 |
19 |
Correct |
167 ms |
367940 KB |
Correct answer: answer = 624 |
20 |
Correct |
162 ms |
368056 KB |
Correct answer: answer = 10000 |
21 |
Correct |
171 ms |
368208 KB |
Correct answer: answer = 1 |
22 |
Correct |
166 ms |
367960 KB |
Correct answer: answer = 4 |
23 |
Correct |
165 ms |
367968 KB |
Correct answer: answer = 1 |
24 |
Correct |
163 ms |
368004 KB |
Correct answer: answer = 5 |
25 |
Correct |
166 ms |
368068 KB |
Correct answer: answer = 41 |
26 |
Correct |
162 ms |
367960 KB |
Correct answer: answer = 71923 |
27 |
Correct |
161 ms |
368032 KB |
Correct answer: answer = 77137 |
28 |
Runtime error |
661 ms |
708392 KB |
Execution killed with signal 11 |
29 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
224 ms |
367996 KB |
Correct answer: answer = 4 |
2 |
Correct |
164 ms |
368084 KB |
Correct answer: answer = 4 |
3 |
Correct |
163 ms |
368140 KB |
Correct answer: answer = 4 |
4 |
Correct |
182 ms |
367944 KB |
Correct answer: answer = 12 |
5 |
Correct |
163 ms |
367940 KB |
Correct answer: answer = 52 |
6 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 210 |
7 |
Correct |
164 ms |
367940 KB |
Correct answer: answer = 88 |
8 |
Correct |
163 ms |
367980 KB |
Correct answer: answer = 7696 |
9 |
Correct |
171 ms |
368048 KB |
Correct answer: answer = 1 |
10 |
Correct |
161 ms |
368064 KB |
Correct answer: answer = 2374 |
11 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 9502 |
12 |
Correct |
165 ms |
368028 KB |
Correct answer: answer = 49 |
13 |
Correct |
180 ms |
368068 KB |
Correct answer: answer = 151 |
14 |
Correct |
176 ms |
368068 KB |
Correct answer: answer = 7550 |
15 |
Correct |
163 ms |
368060 KB |
Correct answer: answer = 7220 |
16 |
Correct |
162 ms |
368024 KB |
Correct answer: answer = 7550 |
17 |
Correct |
163 ms |
368068 KB |
Correct answer: answer = 10000 |
18 |
Correct |
167 ms |
367976 KB |
Correct answer: answer = 10000 |
19 |
Correct |
167 ms |
367940 KB |
Correct answer: answer = 624 |
20 |
Correct |
162 ms |
368056 KB |
Correct answer: answer = 10000 |
21 |
Correct |
171 ms |
368208 KB |
Correct answer: answer = 1 |
22 |
Correct |
166 ms |
367960 KB |
Correct answer: answer = 4 |
23 |
Correct |
165 ms |
367968 KB |
Correct answer: answer = 1 |
24 |
Correct |
163 ms |
368004 KB |
Correct answer: answer = 5 |
25 |
Correct |
166 ms |
368068 KB |
Correct answer: answer = 41 |
26 |
Correct |
162 ms |
367960 KB |
Correct answer: answer = 71923 |
27 |
Correct |
161 ms |
368032 KB |
Correct answer: answer = 77137 |
28 |
Runtime error |
661 ms |
708392 KB |
Execution killed with signal 11 |
29 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
224 ms |
367996 KB |
Correct answer: answer = 4 |
2 |
Correct |
164 ms |
368084 KB |
Correct answer: answer = 4 |
3 |
Correct |
163 ms |
368140 KB |
Correct answer: answer = 4 |
4 |
Correct |
182 ms |
367944 KB |
Correct answer: answer = 12 |
5 |
Correct |
163 ms |
367940 KB |
Correct answer: answer = 52 |
6 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 210 |
7 |
Correct |
164 ms |
367940 KB |
Correct answer: answer = 88 |
8 |
Correct |
163 ms |
367980 KB |
Correct answer: answer = 7696 |
9 |
Correct |
171 ms |
368048 KB |
Correct answer: answer = 1 |
10 |
Correct |
161 ms |
368064 KB |
Correct answer: answer = 2374 |
11 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 9502 |
12 |
Correct |
165 ms |
368028 KB |
Correct answer: answer = 49 |
13 |
Correct |
180 ms |
368068 KB |
Correct answer: answer = 151 |
14 |
Correct |
176 ms |
368068 KB |
Correct answer: answer = 7550 |
15 |
Correct |
163 ms |
368060 KB |
Correct answer: answer = 7220 |
16 |
Correct |
162 ms |
368024 KB |
Correct answer: answer = 7550 |
17 |
Correct |
163 ms |
368068 KB |
Correct answer: answer = 10000 |
18 |
Correct |
167 ms |
367976 KB |
Correct answer: answer = 10000 |
19 |
Correct |
167 ms |
367940 KB |
Correct answer: answer = 624 |
20 |
Correct |
162 ms |
368056 KB |
Correct answer: answer = 10000 |
21 |
Correct |
171 ms |
368208 KB |
Correct answer: answer = 1 |
22 |
Correct |
166 ms |
367960 KB |
Correct answer: answer = 4 |
23 |
Correct |
165 ms |
367968 KB |
Correct answer: answer = 1 |
24 |
Correct |
163 ms |
368004 KB |
Correct answer: answer = 5 |
25 |
Correct |
166 ms |
368068 KB |
Correct answer: answer = 41 |
26 |
Correct |
162 ms |
367960 KB |
Correct answer: answer = 71923 |
27 |
Correct |
161 ms |
368032 KB |
Correct answer: answer = 77137 |
28 |
Runtime error |
661 ms |
708392 KB |
Execution killed with signal 11 |
29 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
224 ms |
367996 KB |
Correct answer: answer = 4 |
2 |
Correct |
164 ms |
368084 KB |
Correct answer: answer = 4 |
3 |
Correct |
163 ms |
368140 KB |
Correct answer: answer = 4 |
4 |
Correct |
182 ms |
367944 KB |
Correct answer: answer = 12 |
5 |
Correct |
163 ms |
367940 KB |
Correct answer: answer = 52 |
6 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 210 |
7 |
Correct |
164 ms |
367940 KB |
Correct answer: answer = 88 |
8 |
Correct |
163 ms |
367980 KB |
Correct answer: answer = 7696 |
9 |
Correct |
171 ms |
368048 KB |
Correct answer: answer = 1 |
10 |
Correct |
161 ms |
368064 KB |
Correct answer: answer = 2374 |
11 |
Correct |
162 ms |
367940 KB |
Correct answer: answer = 9502 |
12 |
Correct |
165 ms |
368028 KB |
Correct answer: answer = 49 |
13 |
Correct |
180 ms |
368068 KB |
Correct answer: answer = 151 |
14 |
Correct |
176 ms |
368068 KB |
Correct answer: answer = 7550 |
15 |
Correct |
163 ms |
368060 KB |
Correct answer: answer = 7220 |
16 |
Correct |
162 ms |
368024 KB |
Correct answer: answer = 7550 |
17 |
Correct |
163 ms |
368068 KB |
Correct answer: answer = 10000 |
18 |
Correct |
167 ms |
367976 KB |
Correct answer: answer = 10000 |
19 |
Correct |
167 ms |
367940 KB |
Correct answer: answer = 624 |
20 |
Correct |
162 ms |
368056 KB |
Correct answer: answer = 10000 |
21 |
Correct |
171 ms |
368208 KB |
Correct answer: answer = 1 |
22 |
Correct |
166 ms |
367960 KB |
Correct answer: answer = 4 |
23 |
Correct |
165 ms |
367968 KB |
Correct answer: answer = 1 |
24 |
Correct |
163 ms |
368004 KB |
Correct answer: answer = 5 |
25 |
Correct |
166 ms |
368068 KB |
Correct answer: answer = 41 |
26 |
Correct |
162 ms |
367960 KB |
Correct answer: answer = 71923 |
27 |
Correct |
161 ms |
368032 KB |
Correct answer: answer = 77137 |
28 |
Runtime error |
661 ms |
708392 KB |
Execution killed with signal 11 |
29 |
Halted |
0 ms |
0 KB |
- |