#include "aliens.h"
#include <iostream>
#include <algorithm>
#include <utility>
#include <climits>
#include <set>
using namespace std;
using ll = long long;
ll sq(ll a) {
return a * a;
}
ll sq(int a) {
return (ll)(a) * a;
}
ll getArea(pair<ll, ll> a) {
return sq(a.second - a.first + 1);
}
ll getArea(ll a, ll b) {
return sq(b - a + 1);
}
ll positiveArea(ll a, ll b) {
ll sideLength = b - a + 1;
return (sideLength > 0 ? sq(sideLength) : 0);
}
ll take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c) {
vector<pair<ll, ll>> points;
for (ll i = 0; i < n; ++i) points.emplace_back(min(r[i], c[i]), max(r[i], c[i]));
sort(points.begin(), points.end());
vector<vector<ll>> dp(n + 1, vector<ll>(k + 1, 0));
for (int i = 1; i <= k; ++i) dp[n][i] = LLONG_MAX / 2;
for (int i = 1; i <= n; ++i) dp[i][0] = LLONG_MAX / 2;
dp[1][1] = 1;
// cout << 1 << '\n';
for (ll i = 2; i <= n; ++i) {
for (ll j = 1; j <= min((ll)(k), i); ++j) {
dp[i][j] = LLONG_MAX / 2;
for (ll a = j - 1; a < i; ++a) {
// cout << dp[a][j - 1] << '\n';
// cout << a << '\n';
// cout << i - 1 << '\n';
// cout << points[a].first << '\n';
// cout << points[i - 1].second << '\n';
dp[i][j] = min(dp[i][j], dp[a][j - 1] + getArea(points[a].first, points[i - 1].second));
}
}
}
// for (int i = 0; i <= k; ++i) cout << dp[n][i] << ' ';
// cout << '\n';
ll res = dp[n][k];
for (int i = 1; i < k; ++i) res = min(res, dp[n][i]);
return res;
}
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... |