#include <bits/stdc++.h>
#include "aliens.h"
using ll = long long;
using namespace std;
const int MAXN = 510;
ll dp[MAXN][MAXN], inter[MAXN];
ll take_photos(int n, int m, int k, vector<int> r, vector<int> c){
vector<pair<int, int>> v;
for(int i=0; i<n; i++){
if(r[i] > c[i]) swap(r[i], c[i]);
v.push_back({c[i], -r[i]});
}
vector<pair<int, int>> cells;
for(auto [c, r] : v){
while(!cells.empty() && -r <= cells.back().second) cells.pop_back();
if(!cells.empty()){
if(-r <= cells.back().first){
inter[cells.size()] = (cells.back().first + r + 1) * (cells.back().first + r + 1);
}
}
cells.push_back({-r, c});
}
n = cells.size();
dp[0][0] = 0;
for(int i=1; i<=n; i++) dp[i][0] = 1e9;
for(int i=1; i<=n; i++){
for(int j=1; j<=k; j++){
dp[i][j] = 1e9;
int l_min = cells[i - 1].second;
for(int l=i-1; l>=0; l--){
l_min = min(l_min, cells[l].first);
ll cost = (cells[i - 1].second - l_min + 1) * (cells[i - 1].second - l_min + 1);
dp[i][j] = min(dp[i][j], dp[l][j - 1] + cost - inter[i]);
}
}
}
return dp[n][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... |