#include <bits/stdc++.h>
#include "aliens.h"
using namespace std;
typedef long long ll;
#define INF 9000000000000
#define DP dp[i][p]
#define mN 520
#define mK 520
int N,M,K;
vector<ll> lower;
vector<ll> upper;
vector<pair<ll,ll>> points;
ll bar(ll i) { return lower[i];}
ll area(ll u, ll l) {
return (u-l)*(u-l);
}
ll overlap(ll j, ll maxbar) {
if(j == N) return 0;
return (upper[j]-maxbar)*(upper[j]-maxbar);
}
vector<vector<ll>> dp(mN, vector<ll>(mK, -1));
ll solve(ll i, ll p) {
if(i == N) return 0;
if(p == 0) return INF;
if(DP != -1) return DP;
ll maxbar = bar(i);
int k = i;
ll ans = INF;
while(k+1 != N && upper[k+1] == i) {
maxbar = max(maxbar, bar(k));
k++;
}
for(int j = k; j < N; j++) {
maxbar = max(maxbar, bar(j));
while(j+1 != N && bar(j+1) <= maxbar) j++;
ll res = area(upper[i], maxbar) + solve(j+1, p-1) - overlap(j+1, maxbar);
ans = min(ans, res);
}
return (DP = ans);
}
long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c) {
N = n;
M = m;
K = k;
vector<ll> Lower;
vector<ll> Upper;
vector<pair<ll,ll>> Points;
for(int i = 0; i < N; i++) {
if(r[i] > c[i]) swap(r[i], c[i]);
c[i] += 1;
Points.push_back({r[i], c[i]});
Lower.push_back({c[i]});
Upper.push_back({r[i]});
}
vector<pair<ll,ll>> sortation;
for(int i = 0; i < n; i++) {
sortation.push_back({Upper[i], i});
}
sort(sortation.begin(), sortation.end());
for(int i = 0; i < n; i++) {
upper.push_back(Upper[sortation[i].second]);
lower.push_back(Lower[sortation[i].second]);
points.push_back(Points[sortation[i].second]);
}
return solve(0, k);
}
컴파일 시 표준 에러 (stderr) 메시지
aliens.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
aliens_c.h:1:9: warning: #pragma once in main file
1 | #pragma once
| ^~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |