#include "aliens.h"
#include <vector>
#include <algorithm>
using namespace std;
long long take_photos(int n, int m, int k, vector<int> r, vector<int> c) {
    vector<pair<int, int>> segs;
    segs.reserve(n);
    
    for (int i = 0; i < n; i++) {
        int l = min(r[i], c[i]);
        int r_val = max(r[i], c[i]);
        segs.push_back({l, r_val});
    }
    sort(segs.begin(), segs.end(), [](const auto& a, const auto& b) {
        return a.first < b.first || (a.first == b.first && a.second > b.second);
    });
    vector<pair<int, int>> segments;
    segments.reserve(n);
    int max_r = -1;
    
    for (const auto& seg : segs) {
        if (seg.second > max_r) {
            segments.push_back(seg);
            max_r = seg.second;
        }
    }
    
    if (segments.empty()) return 0;
    
    int s = segments.size();
    k = min(k, s);
    const long long INF = 1e18;
    vector<long long> dp(s + 1, INF);
    vector<long long> ndp(s + 1, INF);
    dp[0] = 0;
    
    for (int photos = 1; photos <= k; photos++) {
        fill(ndp.begin(), ndp.end(), INF);
        
        for (int i = photos; i <= s; i++) {
            for (int prev = photos - 1; prev < i; prev++) {
                if (dp[prev] >= INF) continue;
                
                int left = segments[prev].first;
                int right = segments[i-1].second;
                
                long long side = (long long)(right - left + 1);
                long long cost = side * side;
                
                if (prev > 0) {
                    int prev_right = segments[prev-1].second;
                    if (prev_right >= left) {
                        long long overlap = (long long)(prev_right - left + 1);
                        cost -= overlap * overlap;
                    }
                }
                
                ndp[i] = min(ndp[i], dp[prev] + cost);
            }
        }
        
        swap(dp, ndp);
    }
    
    return dp[s];
}
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... |