제출 #893016

#제출 시각아이디문제언어결과실행 시간메모리
893016AiperiiiCoin Collecting (JOI19_ho_t4)C++14
100 / 100
125 ms4800 KiB
#include <bits/stdc++.h>
#define int long long
#define all(x) x.begin(),x.end()
#define ff first
#define ss second
#define pb push_back
using namespace std;
const int N=1e5+5;
int cnt[N][3];
signed main(){
    int n;
    cin>>n;
    int ans=0;
    for(int i=0;i<n*2;i++){
        int x,y;
        cin>>x>>y;
        if(x>n){
            ans+=(x-n);x=n;
        }
        else if(x<1){
            ans+=(1-x);x=1;
        }
        
        if(y>2){
            ans+=(y-2);y=2;
        }
        else if(y<1){
            ans+=(1-y);y=1;
        }
        cnt[x][y]++;
    }
    int a=0,b=0;
    for(int i=1;i<=n;i++){
        a+=cnt[i][1]-1;b+=cnt[i][2]-1;
        while(a>0 && b<0){
            a--;
            b++;
            ans++;
        }
        while(a<0 && b>0){
            a++;
            b--;
            ans++;
        }
        ans+=abs(a);
        ans+=abs(b);
    }
    cout<<ans<<"\n";
}

#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...