Submission #340427

#TimeUsernameProblemLanguageResultExecution timeMemory
340427Ahmad_HasanCover (COCI18_cover)C++17
72 / 120
79 ms1004 KiB
#include <bits/stdc++.h> using namespace std; bool comp(pair<int,int>a,pair<int,int>b){ if(a.first==b.first) return a.second>b.second; return a.first>b.first; } vector<pair<long long,long long> >vps; int n; vector<long long >dp; long long slv(int cr=0){ if(cr>=n) return 0ll; if(dp[cr]!=-1ll) return dp[cr]; long long ret=1e17; int nwcr=cr+1; ret=vps[cr].first*vps[cr].second+slv(nwcr); while(nwcr<n) { ret=min(ret,max(vps[cr].first,vps[nwcr].first)* max(vps[cr].second,vps[nwcr].second)+slv(nwcr+1)); nwcr++; } return dp[cr]=ret; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); cin>>n; vps=vector<pair<long long,long long> >(n); for(int i=0;i<n;i++){ cin>>vps[i].first>>vps[i].second; vps[i].first=abs(vps[i].first); vps[i].second=abs(vps[i].second); } sort(vps.begin(),vps.end(),comp); dp=vector<long long>(5000,-1ll); cout<<4*slv()<<'\n'; return 0; }/** 3 19 7 30 9 10 25 */
#Verdict Execution timeMemoryGrader output
Fetching results...