제출 #1274004

#제출 시각아이디문제언어결과실행 시간메모리
1274004coderg300711Aliens (IOI16_aliens)C++20
12 / 100
40 ms2376 KiB
#include "aliens.h"
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
#define all(x) (x).begin(), (x).end()
#define sz(x) int(x.size())

long long take_photos(int n, int m, int K,vector<int> r,vector<int> c) {
    vector<pair<int, int>> pts(n);
    for(int i=0;i<n;i++){
        if (r[i]>c[i])swap(r[i],c[i]);
        pts[i]=make_pair(r[i],c[i]);
    }
    sort(all(pts));
    {
        vector<pair<int, int>> pts2;
        for(int i=0;i<n;i++) {
            if (i!=n-1 && pts[i].first==pts[i+1].first)continue;
            pts2.push_back(pts[i]);
        }
        pts=pts2;
        n=sz(pts);
    }
    {
        vector<pair<int, int>> pts2;
        int mx_c=-1;
        for(int i=0;i<n;i++) {
            if(pts[i].second<=mx_c)continue;
            pts2.push_back(pts[i]);
            mx_c=max(mx_c,pts[i].second);
        }
        pts=pts2;
        n=sz(pts);
    }
    vector<vector<ll>> dp(n+1,vector<ll>(K+1,1LL<<60));
    dp[0][0]=0;
    for(int i=1;i<=n;i++){
        for(int j=0;j<i;j++){
            ll diff=pts[i-1].second-pts[j].first+1;
            ll cost=diff*diff;
            for(int k=0;k<K;k++)dp[i][k+1]=min(dp[i][k+1],dp[j][k]+cost);
        }
    }
    ll ans=1LL<<60;
    for(int i=0;i<=K;i++)ans=min(ans,dp[n][i]);

    return ans;
}

컴파일 시 표준 에러 (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 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...