#include "aliens.h"
#include <bits/stdc++.h>
#define ll long long
using namespace std;
long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c) {
for(int i = 0; i < n; i++){
if(r[i] > c[i]){
swap(r[i], c[i]);
}
}
ll lim [m];
for(int i = 0; i < m; i++){
lim[i] = i+1;
}
for(int i = 0; i < n; i++){
lim[c[i]] = min(lim[c[i]], (ll)(r[i]));
}
for(int i = m-2; i >= 0; i--){
lim[i] = min(lim[i+1], lim[i]);
}
ll lo = 0;
ll hi = (1ll << 30);
while(lo != hi){
ll mid = (lo + hi)/2;
pair<ll,int> dp [m+1];
for(int i = 0; i <= m; i++){
dp[i] = make_pair((1ll << 60), 0);
}
dp[0] = make_pair(0, 0);
for(ll i = 0; i < m; i++){
if(lim[i] == i+1){
if(dp[i+1] > dp[i]){
dp[i+1] = dp[i];
}
}else{
for(ll l = i+1; l <= m; l++){
if(dp[l] > make_pair(dp[i].first + (l - lim[i]) * (l - lim[i]) + mid, dp[i].second + 1)){
dp[l] = make_pair(dp[i].first + (l - lim[i]) * (l - lim[i]) + mid, dp[i].second + 1);
}
}
}
}
if(dp[m].second <= k){
hi = mid;
}else{
lo = mid+1;
}
}
{
ll mid = lo;
pair<ll,int> dp [m+1];
for(int i = 0; i <= m; i++){
dp[i] = make_pair((1ll << 60), 0);
}
dp[0] = make_pair(0, 0);
for(int i = 0; i < m; i++){
if(lim[i] == i+1){
if(dp[i+1] > dp[i]){
dp[i+1] = dp[i];
}
}else{
for(int l = i+1; l <= m; l++){
if(dp[l] > make_pair(dp[i].first + (l - lim[i]) * (l - lim[i]) + mid, dp[i].second + 1)){
dp[l] = make_pair(dp[i].first + (l - lim[i]) * (l - lim[i]) + mid, dp[i].second + 1);
}
}
}
}
return dp[m].first - mid * dp[m].second;
}
}
컴파일 시 표준 에러 (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... |