Submission #1071784

#TimeUsernameProblemLanguageResultExecution timeMemory
1071784TheQuantiXAliens (IOI16_aliens)C++17
4 / 100
32 ms1068 KiB
#include <bits/stdc++.h> #include "aliens.h" using namespace std; using ll = long long; constexpr ll INF = 1000000000000000000LL; ll n, m, q, k, x, y, a, b, c; long long take_photos(int n, int m, int k, vector<int> r, vector<int> c) { if (k == n) { set< pair<ll, ll> > st; for (int e = 0; e < n; e++) { for (int i = min(r[e], c[e]); i <= max(r[e], c[e]); i++) { for (int j = min(r[e], c[e]); j <= max(r[e], c[e]); j++) { st.insert({i, j}); } } } return st.size(); } set<ll> st; for (int i = 0; i < n; i++) { st.insert(r[i]); } vector<ll> v; for (int i : st) { v.push_back(i); } n = v.size(); vector< vector<ll> > dp(k + 1, vector<ll> (n + 1, INF)); for (int i = 0; i <= k; i++) { for (int j = 1; j <= n; j++) { if (i == 0) { if (j == 0) { dp[i][j] = 0; } } else { for (int j1 = 1; j1 <= j; j1++) { dp[i][j] = min(dp[i][j], (v[j - 1] - v[j1 - 1] + 1) * (v[j - 1] - v[j1 - 1] + 1) + dp[i - 1][j1 - 1]); } } } } return dp[k][n]; }
#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...