Submission #1232933

#TimeUsernameProblemLanguageResultExecution timeMemory
1232933tfgsAliens (IOI16_aliens)C++17
0 / 100
9 ms440 KiB
#include "aliens.h" #include <bits/stdc++.h> #define ll long long using namespace std; long long take_photos(int n, int m, int k, std::vector<int> r, std::vector<int> c) { for(int i = 0; i < n; i++){ if(r[i] > c[i]){ swap(r[i], c[i]); } } ll lim [m]; for(int i = 0; i < m; i++){ lim[i] = i+1; } for(int i = 0; i < n; i++){ lim[c[i]] = min(lim[c[i]], (ll)(r[i])); } for(int i = m-2; i >= 0; i--){ lim[i] = min(lim[i+1], lim[i]); } ll lo = 0; ll hi = (1ll << 30); while(lo != hi){ ll mid = (lo + hi)/2; pair<ll,int> dp [m+1]; for(int i = 0; i <= m; i++){ dp[i] = make_pair((1ll << 60), 0); } dp[0] = make_pair(0, 0); for(ll i = 0; i < m; i++){ if(lim[i] == i+1){ if(dp[i+1] > dp[i]){ dp[i+1] = dp[i]; } }else{ for(ll l = i+1; l <= m; l++){ if(dp[l] > make_pair(dp[i].first + (l - lim[i]) * (l - lim[i]) + mid, dp[i].second + 1)){ dp[l] = make_pair(dp[i].first + (l - lim[i]) * (l - lim[i]) + mid, dp[i].second + 1); } } } } if(dp[m].second <= k){ hi = mid; }else{ lo = mid+1; } } { ll mid = lo; pair<ll,int> dp [m+1]; for(int i = 0; i <= m; i++){ dp[i] = make_pair((1ll << 60), 0); } dp[0] = make_pair(0, 0); for(int i = 0; i < m; i++){ if(lim[i] == i+1){ if(dp[i+1] > dp[i]){ dp[i+1] = dp[i]; } }else{ for(int l = i+1; l <= m; l++){ if(dp[l] > make_pair(dp[i].first + (l - lim[i]) * (l - lim[i]) + mid, dp[i].second + 1)){ dp[l] = make_pair(dp[i].first + (l - lim[i]) * (l - lim[i]) + mid, dp[i].second + 1); } } } } return dp[m].first - mid * dp[m].second; } }

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