Submission #389088

# Submission time Handle Problem Language Result Execution time Memory
389088 2021-04-13T15:36:43 Z alishahali1382 Aliens (IOI16_aliens) C++14
4 / 100
251 ms 317820 KB
#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=50000, K=100;
 
int n, m, k;
pii A[MAXN];
ll dp[MAXN][K];
 
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 L, R;
	inline void Add(pll x){
		while (L<R && Inter(A[R-1].second, x)<=A[R-1].first) R--;
		if (L==R) A[R++]={-INF, x};
		else A[R]={Inter(A[R-1].second, x), x}, R++;
	}
	inline ll Get(ll x){
		while (L+1<R && A[L+1].first<=x) L++;
		pll p=A[L].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({2*A[i].first, -val});
		}
		for (int t=1; t<=k; t++){
			dp[i][t]=_sq(A[i].second+1)-cht[t-1].Get(A[i].second+1);
		}
	}
	return dp[n][k];
}
# Verdict Execution time Memory Grader output
1 Correct 79 ms 156768 KB Correct answer: answer = 4
2 Correct 86 ms 156740 KB Correct answer: answer = 4
3 Correct 78 ms 156720 KB Correct answer: answer = 4
4 Correct 78 ms 156744 KB Correct answer: answer = 12
5 Correct 79 ms 156740 KB Correct answer: answer = 52
6 Correct 92 ms 156740 KB Correct answer: answer = 210
7 Correct 85 ms 156792 KB Correct answer: answer = 88
8 Correct 84 ms 156744 KB Correct answer: answer = 7696
9 Correct 78 ms 156784 KB Correct answer: answer = 1
10 Correct 79 ms 156740 KB Correct answer: answer = 2374
11 Correct 78 ms 156740 KB Correct answer: answer = 9502
12 Correct 79 ms 156736 KB Correct answer: answer = 49
13 Correct 80 ms 156952 KB Correct answer: answer = 151
14 Correct 78 ms 156788 KB Correct answer: answer = 7550
15 Correct 80 ms 156812 KB Correct answer: answer = 7220
16 Correct 80 ms 156776 KB Correct answer: answer = 7550
17 Correct 79 ms 156740 KB Correct answer: answer = 10000
18 Correct 88 ms 156904 KB Correct answer: answer = 10000
19 Correct 88 ms 156812 KB Correct answer: answer = 624
20 Correct 86 ms 156740 KB Correct answer: answer = 10000
# Verdict Execution time Memory Grader output
1 Correct 79 ms 156816 KB Correct answer: answer = 1
2 Correct 78 ms 156792 KB Correct answer: answer = 4
3 Correct 79 ms 156788 KB Correct answer: answer = 1
4 Correct 89 ms 156728 KB Correct answer: answer = 5
5 Correct 89 ms 156784 KB Correct answer: answer = 41
6 Correct 78 ms 156740 KB Correct answer: answer = 71923
7 Correct 78 ms 156784 KB Correct answer: answer = 77137
8 Runtime error 251 ms 317820 KB Execution killed with signal 11
9 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 79 ms 156768 KB Correct answer: answer = 4
2 Correct 86 ms 156740 KB Correct answer: answer = 4
3 Correct 78 ms 156720 KB Correct answer: answer = 4
4 Correct 78 ms 156744 KB Correct answer: answer = 12
5 Correct 79 ms 156740 KB Correct answer: answer = 52
6 Correct 92 ms 156740 KB Correct answer: answer = 210
7 Correct 85 ms 156792 KB Correct answer: answer = 88
8 Correct 84 ms 156744 KB Correct answer: answer = 7696
9 Correct 78 ms 156784 KB Correct answer: answer = 1
10 Correct 79 ms 156740 KB Correct answer: answer = 2374
11 Correct 78 ms 156740 KB Correct answer: answer = 9502
12 Correct 79 ms 156736 KB Correct answer: answer = 49
13 Correct 80 ms 156952 KB Correct answer: answer = 151
14 Correct 78 ms 156788 KB Correct answer: answer = 7550
15 Correct 80 ms 156812 KB Correct answer: answer = 7220
16 Correct 80 ms 156776 KB Correct answer: answer = 7550
17 Correct 79 ms 156740 KB Correct answer: answer = 10000
18 Correct 88 ms 156904 KB Correct answer: answer = 10000
19 Correct 88 ms 156812 KB Correct answer: answer = 624
20 Correct 86 ms 156740 KB Correct answer: answer = 10000
21 Correct 79 ms 156816 KB Correct answer: answer = 1
22 Correct 78 ms 156792 KB Correct answer: answer = 4
23 Correct 79 ms 156788 KB Correct answer: answer = 1
24 Correct 89 ms 156728 KB Correct answer: answer = 5
25 Correct 89 ms 156784 KB Correct answer: answer = 41
26 Correct 78 ms 156740 KB Correct answer: answer = 71923
27 Correct 78 ms 156784 KB Correct answer: answer = 77137
28 Runtime error 251 ms 317820 KB Execution killed with signal 11
29 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 79 ms 156768 KB Correct answer: answer = 4
2 Correct 86 ms 156740 KB Correct answer: answer = 4
3 Correct 78 ms 156720 KB Correct answer: answer = 4
4 Correct 78 ms 156744 KB Correct answer: answer = 12
5 Correct 79 ms 156740 KB Correct answer: answer = 52
6 Correct 92 ms 156740 KB Correct answer: answer = 210
7 Correct 85 ms 156792 KB Correct answer: answer = 88
8 Correct 84 ms 156744 KB Correct answer: answer = 7696
9 Correct 78 ms 156784 KB Correct answer: answer = 1
10 Correct 79 ms 156740 KB Correct answer: answer = 2374
11 Correct 78 ms 156740 KB Correct answer: answer = 9502
12 Correct 79 ms 156736 KB Correct answer: answer = 49
13 Correct 80 ms 156952 KB Correct answer: answer = 151
14 Correct 78 ms 156788 KB Correct answer: answer = 7550
15 Correct 80 ms 156812 KB Correct answer: answer = 7220
16 Correct 80 ms 156776 KB Correct answer: answer = 7550
17 Correct 79 ms 156740 KB Correct answer: answer = 10000
18 Correct 88 ms 156904 KB Correct answer: answer = 10000
19 Correct 88 ms 156812 KB Correct answer: answer = 624
20 Correct 86 ms 156740 KB Correct answer: answer = 10000
21 Correct 79 ms 156816 KB Correct answer: answer = 1
22 Correct 78 ms 156792 KB Correct answer: answer = 4
23 Correct 79 ms 156788 KB Correct answer: answer = 1
24 Correct 89 ms 156728 KB Correct answer: answer = 5
25 Correct 89 ms 156784 KB Correct answer: answer = 41
26 Correct 78 ms 156740 KB Correct answer: answer = 71923
27 Correct 78 ms 156784 KB Correct answer: answer = 77137
28 Runtime error 251 ms 317820 KB Execution killed with signal 11
29 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 79 ms 156768 KB Correct answer: answer = 4
2 Correct 86 ms 156740 KB Correct answer: answer = 4
3 Correct 78 ms 156720 KB Correct answer: answer = 4
4 Correct 78 ms 156744 KB Correct answer: answer = 12
5 Correct 79 ms 156740 KB Correct answer: answer = 52
6 Correct 92 ms 156740 KB Correct answer: answer = 210
7 Correct 85 ms 156792 KB Correct answer: answer = 88
8 Correct 84 ms 156744 KB Correct answer: answer = 7696
9 Correct 78 ms 156784 KB Correct answer: answer = 1
10 Correct 79 ms 156740 KB Correct answer: answer = 2374
11 Correct 78 ms 156740 KB Correct answer: answer = 9502
12 Correct 79 ms 156736 KB Correct answer: answer = 49
13 Correct 80 ms 156952 KB Correct answer: answer = 151
14 Correct 78 ms 156788 KB Correct answer: answer = 7550
15 Correct 80 ms 156812 KB Correct answer: answer = 7220
16 Correct 80 ms 156776 KB Correct answer: answer = 7550
17 Correct 79 ms 156740 KB Correct answer: answer = 10000
18 Correct 88 ms 156904 KB Correct answer: answer = 10000
19 Correct 88 ms 156812 KB Correct answer: answer = 624
20 Correct 86 ms 156740 KB Correct answer: answer = 10000
21 Correct 79 ms 156816 KB Correct answer: answer = 1
22 Correct 78 ms 156792 KB Correct answer: answer = 4
23 Correct 79 ms 156788 KB Correct answer: answer = 1
24 Correct 89 ms 156728 KB Correct answer: answer = 5
25 Correct 89 ms 156784 KB Correct answer: answer = 41
26 Correct 78 ms 156740 KB Correct answer: answer = 71923
27 Correct 78 ms 156784 KB Correct answer: answer = 77137
28 Runtime error 251 ms 317820 KB Execution killed with signal 11
29 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 79 ms 156768 KB Correct answer: answer = 4
2 Correct 86 ms 156740 KB Correct answer: answer = 4
3 Correct 78 ms 156720 KB Correct answer: answer = 4
4 Correct 78 ms 156744 KB Correct answer: answer = 12
5 Correct 79 ms 156740 KB Correct answer: answer = 52
6 Correct 92 ms 156740 KB Correct answer: answer = 210
7 Correct 85 ms 156792 KB Correct answer: answer = 88
8 Correct 84 ms 156744 KB Correct answer: answer = 7696
9 Correct 78 ms 156784 KB Correct answer: answer = 1
10 Correct 79 ms 156740 KB Correct answer: answer = 2374
11 Correct 78 ms 156740 KB Correct answer: answer = 9502
12 Correct 79 ms 156736 KB Correct answer: answer = 49
13 Correct 80 ms 156952 KB Correct answer: answer = 151
14 Correct 78 ms 156788 KB Correct answer: answer = 7550
15 Correct 80 ms 156812 KB Correct answer: answer = 7220
16 Correct 80 ms 156776 KB Correct answer: answer = 7550
17 Correct 79 ms 156740 KB Correct answer: answer = 10000
18 Correct 88 ms 156904 KB Correct answer: answer = 10000
19 Correct 88 ms 156812 KB Correct answer: answer = 624
20 Correct 86 ms 156740 KB Correct answer: answer = 10000
21 Correct 79 ms 156816 KB Correct answer: answer = 1
22 Correct 78 ms 156792 KB Correct answer: answer = 4
23 Correct 79 ms 156788 KB Correct answer: answer = 1
24 Correct 89 ms 156728 KB Correct answer: answer = 5
25 Correct 89 ms 156784 KB Correct answer: answer = 41
26 Correct 78 ms 156740 KB Correct answer: answer = 71923
27 Correct 78 ms 156784 KB Correct answer: answer = 77137
28 Runtime error 251 ms 317820 KB Execution killed with signal 11
29 Halted 0 ms 0 KB -