Submission #1284107

#TimeUsernameProblemLanguageResultExecution timeMemory
1284107Martincho506Aliens (IOI16_aliens)C++20
0 / 100
1 ms348 KiB
#include<iostream> #include<vector> #include<algorithm> using namespace std; const int MAXN = 4e3+7; const long long INF = 1e18; pair<int, int> tt[MAXN]; vector<pair<int, int> > a; long long dp[MAXN][MAXN]; bool cmp(pair<int, int> a1, pair<int, int> b1) { if(a1.first < b1.first) return true; if(a1.first > b1.first) return false; if(a1.second > b1.second) return true; return false; } long long take_photos(int n, int m, int k, vector<int> r, vector<int> c) { for(int i = 1; i <= n; i++) { tt[i].first = min(c[i-1], r[i-1]); tt[i].second = max(c[i-1], r[i-1]); } sort(tt+1, tt+n+1, cmp); int maxi = 0; for(int i = 1; i <= n; i++) { if(tt[i].second > maxi) { maxi = tt[i].second; a.push_back(tt[i]); } } //cout<<a.size()<<"\n"; //dp[n][k] = min{dp[p][k-1]+(r[n]-l[p+1])^2-max(0, r[p]-l[p+1])^2}; for(int i = 0; i < a.size(); i++) { dp[i][1] = (a[i].second-a[0].first+1)*(a[i].second-a[0].first+1); } for(int i = 1; i <= k; i++) { dp[0][i] = (a[0].second-a[0].first+1)*(a[0].second-a[0].first+1); } for(int i = 2; i <= k; i++) { for(int j = 1; j < a.size(); j++) { long long mini = INF; for(int jj = 0; jj < j; jj++) { int ss = max(0, a[jj].second-a[jj+1].first+1); //cout<<i<<" "<<j<<" "<<jj<<" "<<dp[jj][i-1]+(a[j].second-a[jj+1].first+1)*(a[j].second-a[jj+1].first+1)-ss*ss<<"\n"; mini = min(mini, dp[jj][i-1]+(a[j].second-a[jj+1].first+1)*(a[j].second-a[jj+1].first+1)-ss*ss); } dp[j][i] = mini; } } /*for(int i = 0; i < a.size(); i++) { for(int j = 1; j <= k; j++) { cout<<dp[i][j]<<" "; } cout<<"\n"; }*/ int sz = a.size()-1; return dp[sz][k]; } /* 5 7 2 0 3 4 4 4 6 4 5 4 6 */ /*int main() { return 0; }*/

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 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...