Submission #1151782

#TimeUsernameProblemLanguageResultExecution timeMemory
1151782alexddAliens (IOI16_aliens)C++20
0 / 100
0 ms328 KiB
#include "aliens.h" #include<bits/stdc++.h> using namespace std; #define int long long const int INF = 1e18; const int MAXN = 4005; const int MAXK = 4005; int dp[MAXN][MAXK]; pair<int,int> v[MAXN]; int maxy[MAXN]; long long take_photos(int32_t n, int32_t m, int32_t k, std::vector<int32_t> x, std::vector<int32_t> y) { for(int i=0;i<n;i++) { if(x[i] < y[i]) swap(x[i],y[i]); //x[i]++;y[i]++; v[i+1] = {x[i],y[i]}; } sort(v+1,v+1+n); for(int i=1;i<=n;i++) { x[i] = v[i].first; y[i] = v[i].second; for(int j=0;j<=k;j++) dp[i][j]=INF; } for(int i=1;i<=n;i++) { for(int cnt=1;cnt<=k;cnt++) { int aux=INF; for(int x=i-1;x>=0;x--) { if(aux > v[x].first || 1) { int lat = max({v[i].first-v[x+1].first+1, v[i].first-v[i].second+1, v[i].first-aux+1}); dp[i][cnt] = min(dp[i][cnt], dp[x][cnt-1] + lat*lat); } aux = min(aux, v[x].second); } } } int mnm=INF; for(int i=0;i<=k;i++) mnm = min(mnm, dp[n][i]); return mnm; } /* 5 7 2 0 3 4 4 4 6 4 5 4 6 output: 25 2 6 2 1 4 4 1 output: 16 */

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