제출 #1159483

#제출 시각아이디문제언어결과실행 시간메모리
1159483mnbvcxz123Cover (COCI18_cover)C++20
72 / 120
12 ms328 KiB
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
using pi=pair<ll,ll>;

#define fi first
#define se second

constexpr int N=5e3+5;

int n;
pi a[N];
ll dp[N];

bool cmp(pi x, pi y){
        if(x.fi^y.fi)return x.se>y.se;
        return x.fi<y.fi;
}

int main(){
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        cout.tie(nullptr);
        cin>>n;
        for(int i=1;i<=n;++i){
                cin>>a[i].fi>>a[i].se;
                a[i].fi=abs(a[i].fi);
                a[i].se=abs(a[i].se);
        }
        sort(a+1,a+n+1,cmp);
        dp[0]=0;
        fill(dp+1,dp+n+1,1e18);
        dp[1]=a[1].fi*a[1].se;
        for(int i=2;i<=n;++i){
                ll mx=a[i].se;
                for(int j=i;j;--j){
                        mx=max(mx,a[j].se);
                        dp[i]=min(dp[i],dp[j-1]+mx*a[i].fi);
                }
        }
        cout<<(dp[n]<<2)<<'\n';
}
#Verdict Execution timeMemoryGrader output
Fetching results...