Submission #124840

#TimeUsernameProblemLanguageResultExecution timeMemory
124840nvmdavaAliens (IOI16_aliens)C++17
0 / 100
9 ms4376 KiB
#include "aliens.h"
#include <bits/stdc++.h>
using namespace std;

int temp[1000005];

vector<pair<int, int> > v;

long long dp[505][505];

long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c) {
	memset(temp, -1, sizeof temp);
	
    for(int i = 0; i < k; i++){
    	temp[min(c[i], r[i])] = max(r[i], c[i]);
	}
	
	int mx = -1;
	v.push_back({-1, -1});
	for(int i = 0; i < m; i++)
		if(temp[i] > mx)
			v.push_back({i, 1 + (mx = temp[i])});
	n = v.size() - 1;
	k = min(k, n);
	for(int i = 1; i <= k; i++){
		for(int j = 1; j <= n; j++){
			dp[i][j] = 1231231231231;
			for(int l = 0; l < j; l++){
				dp[i][j] = min(dp[i][j], dp[i - 1][l] + (v[j].second - v[l + 1].first) * (v[j].second - v[l + 1].first));
			}
		}
	}
	return dp[k][n];
}
#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...