#include "aliens.h"
#include "bits/stdc++.h"
using namespace std;
using ll = long long;
#define vec vector
int sq(int x) { return x * x; }
vec<int> a;
int memo[505][505] = {0};
bool done[505][505] = {false};
int calc(int i, int k) {
if (i == -1) return 0;
if (k == 0) return INT_MAX;
if (k == 1) return sq(abs(a[i] - a[0]) + 1);
if (done[i][k]) return memo[i][k];
done[i][k] = true;
int ans = INT_MAX;
for (int j = 0; j <= i; j++) {
ans = min(ans, calc(j - 1, k - 1) + sq(abs(a[i] - a[j]) + 1));
}
return memo[i][k] = ans;
}
ll take_photos(int n, int m, int k, vec<int> r, vec<int> c) {
for (int i = 0; i < 505; i++) for (int j = 0; j < 505; j++) done[i][j] = false;
a.resize(n);
sort(a.begin(), a.end());
for (int i = 0; i < n; i++) a[i] = r[i], assert(r[i] == c[i]);
return calc(n - 1, k);
}
Compilation message (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... |