답안 #340428

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
340428 2020-12-27T15:20:58 Z Ahmad_Hasan Cover (COCI18_cover) C++17
72 / 120
92 ms 1004 KB
#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>(5005,-1ll);

    cout<<4ll*slv()<<'\n';

    return 0;
}/**
3
19 7
30 9
10 25

*/
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 364 KB Output is correct
2 Correct 1 ms 364 KB Output is correct
3 Correct 0 ms 364 KB Output is correct
4 Correct 1 ms 384 KB Output is correct
5 Correct 1 ms 364 KB Output is correct
6 Correct 1 ms 364 KB Output is correct
7 Incorrect 1 ms 364 KB Output isn't correct
8 Incorrect 4 ms 492 KB Output isn't correct
9 Incorrect 29 ms 620 KB Output isn't correct
10 Incorrect 92 ms 1004 KB Output isn't correct