Submission #555654

#TimeUsernameProblemLanguageResultExecution timeMemory
555654FidanAliens (IOI16_aliens)C++17
0 / 100
1 ms340 KiB
#include "aliens.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

long long take_photos(int n, int m, int k, vector<int> r, vector<int> c) {
	vector<bool> v(m+1, false);
	vector<vector<ll>> dp(n+1, vector<ll> (k+1, n*n+10)); 
	ll i, j;
	for(i=0; i<n; i++){
		r[i]++;
		v[r[i]]=true;
	}
	
	for(i=1; i<=m; i++){
		if(v[i]){
			break;
		}
		else{ 
			for(ll j=0; j<=k; j++) dp[i][j]=0;
		}
	}
	
	for(i=1; i<=m; i++){
		if(!v[i]){
			dp[i][1]=dp[i-1][1];
		}
		else {
			dp[i][1]=(i-r[0]+1)*(i-r[0]+1);
		}
	}
	
	for(i=1; i<=m; i++){
		for(j=1; j<=k; j++){
			if(!v[i]){
				dp[i][j]=dp[i-1][j];
				continue;
			}
			for(ll a: r){
				if(a>v[i]){
					break;
				}
				dp[i][j]=min(dp[i][j], dp[a-1][j-1]+(i-a+1)*(i-a+1));
			}
		}
	}
	
    return dp[n][k];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...