제출 #1354124

#제출 시각아이디문제언어결과실행 시간메모리
1354124guardianecCoin Collecting (JOI19_ho_t4)C++20
100 / 100
34 ms5700 KiB
#include <bits/stdc++.h>
#define ll long long
using namespace std;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    ll n;
    cin >> n;
    vector<vector<ll>> freq(n+1, vector<ll>(2));
    ll res = 0;
    for (int i=1; i<=2*n; i++) {
        ll x,y;
        cin >> x >> y;
        ll x1 = max(1LL, min(n, x));
        ll y1 = max(1LL, min(2LL, y));
        res+=abs(x-x1)+abs(y-y1);
        freq[x1][y1-1]++;
    }

    ll s1 = 0;
    ll s2 = 0;
    for (int i=1; i<=n; i++) {
        if (freq[i][0]==0) s1--;
        else s1+=freq[i][0]-1;
        if (freq[i][1]==0) s2--;
        else s2+=freq[i][1]-1;

        if (s1<0 && s2>0) {
            ll m = min(abs(s1), s2);
            res+=m;
            s1+=m;
            s2-=m;
        } else if (s1>0 && s2<0) {
            ll m = min(s1, abs(s2));
            res+=m;
            s2+=m;
            s1-=m;
        }
        res+=abs(s1)+abs(s2);
    }

    cout << res;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...