#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;
const long long INF = 1e18;
struct Interval
{
int l, r;
bool operator<(const Interval &other) const
{
return l < other.l || (l == other.l && r > other.r);
}
};
vector<Interval> clearedIntervals(vector<Interval> &intervals)
{
sort(intervals.begin(), intervals.end());
vector<Interval> cleared;
cleared.push_back({-1, -1});
for (int i = 0; i < intervals.size(); i++)
{
if (cleared.back().r < intervals[i].r)
cleared.push_back(intervals[i]);
}
return cleared;
}
long long sqr(long long x)
{
return x * x;
}
long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c)
{
vector<Interval> initialIntervals;
for (int i = 0; i < n; i++)
{
initialIntervals.push_back({min(r[i], c[i]), max(r[i], c[i])});
}
vector<Interval> intervals = clearedIntervals(initialIntervals);
n = intervals.size() - 1;
vector<vector<long long>> dp(n + 1, vector<long long>(k + 1, 0));
for (int i = 1; i <= n; i++)
dp[i][0] = INF;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= k; j++)
{
dp[i][j] = INF;
for (int t = 1; t <= i; t++)
{
dp[i][j] = min(dp[i][j], dp[t - 1][j - 1] + sqr(intervals[i].r - intervals[t].l + 1) -
sqr(max(0, intervals[t - 1].r - intervals[t].l + 1)));
}
}
}
long long ans = INF;
for (int j = 0; j <= k; j++)
ans = min(ans, dp[n][j]);
return ans;
}
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... |