Submission #107054

#TimeUsernameProblemLanguageResultExecution timeMemory
107054tictaccatAliens (IOI16_aliens)C++14
12 / 100
233 ms2424 KiB
#include "aliens.h"
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;

const ll INF = (ll)1e18;

//subtask 2: convex hull or n^3 dp

ll take_photos(int n, int m, int k, vector<int> r, vector<int> c) {

    // vector<vector<bool>> grid(m,vector<bool>(m,false));

    // for (int i = 0; i < n; i++) {
    //     for (int j = min(r[i],c[i]); j <= max(r[i],c[i]); j++) {
    //         for (int k = min(r[i],c[i]); k <= max(r[i],c[i]); k++) {
    //             grid[j][k] = true;
    //         }
    //     }
    // }

    // ll s = 0;
    // for (int j = 0; j < m; j++) for (int k = 0; k < m; k++) s += grid[j][k];
    sort(r.begin(),r.end());

    vector<vector<ll>> dp(n+1, vector<ll> (k+1,INF));

    for (int u = 0; u <= k; u++) dp[0][u] = 0;

    for (int i = 1; i <= n; i++) {
        for (int u = 1; u <= k; u++) {
            for (int j = 0; j < i; j++) {
                dp[i][u] = min(dp[i][u],dp[j][u-1] + (r[i-1]-r[j]+1)*(r[i-1]-r[j]+1));
            }
        }
    }

    return dp[n][k];
}
#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...