제출 #91637

#제출 시각아이디문제언어결과실행 시간메모리
91637nathalie_fouadCover (COCI18_cover)C++14
0 / 120
5 ms632 KiB
#include <bits/stdc++.h>
#define ll long long
#define endl '\n'

using namespace std;

int main()
{
    int n;
    cin>>n;
    vector<pair<ll,ll> > v(n);
    ll maxx=0, maxy=0;
    for(int i=0;i<n;i++)
        cin>>v[i].first>>v[i].second,
        maxx=max(maxx,abs(v[i].first) ),maxy=max(maxy,abs(v[i].second) );

    ll minmx=1e11 , maxmx=-1e11 , minmy=1e11 , maxmy=-1e11 ;
    for(int i=0;i<n;i++)
    {
        if(abs(v[i].first)==maxx)
            minmx=min(minmx,abs(v[i].second )),
            maxmx=max(maxmx,abs(v[i].second));
        if(abs(v[i].second)==maxy)
            minmy=min(minmy,abs(v[i].first)),
            maxmy=max(maxmy,abs(v[i].first));
    }
    ll barax=-1e11,baray=-1e11;
    for(int i=0;i<n;i++)
    {
        if(abs(v[i].first)>max(minmy,maxmy) && abs(v[i].second)>max(minmx,minmy))
            barax=max(barax,abs(v[i].first)),
            baray=max(baray,abs(v[i].second));
    }
    ll ans=maxx*2*maxy*2;
    if(barax==-1e11 && baray==-1e11)
    {ans=min(ans,max(minmy,maxmy)*2*maxy*2+max(minmx,maxmx)*2*maxx*2);goto go;}
    ans=min(ans,max(minmy,maxmy)*2*maxy*2+max(minmx,maxmx)*2*maxx*2+barax*2*baray*2);
    ans=min(ans,barax*2*maxy*2+baray*2*maxx*2);
    ans=min(ans,max(barax,baray)*2*maxy*2+max(minmx,maxmx)*2*maxx*2);
    ans=min(ans,max(minmy,maxmy)*2*maxy*2+max(barax,baray)*2*maxx*2);
    go:;
    cout<<ans;


    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...