Submission #1203629

#TimeUsernameProblemLanguageResultExecution timeMemory
1203629vicvicCoin Collecting (JOI19_ho_t4)C++20
100 / 100
104 ms1980 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <cstdint>
#define int long long
using namespace std;
const int NMAX=1e5;
int n, b[2], v[NMAX+5][2];
int32_t main ()
{
    cin >> n;
    int ret=0;
    for (int i=1;i<=2*n;i++)
    {
        int x, y;
        cin >> x >> y;
        int X=clamp (x, 1ll, n);
        int Y=clamp (y, 1ll, 2ll);
        ret+=abs (x-X)+abs (y-Y);
        v[X][Y-1]++;
    }
    for (int i=1;i<=n;i++)
    {
        b[0]+=v[i][0]-1;
        b[1]+=v[i][1]-1;
        for (auto line : {0, 1})
        {
            int dif=min (abs (b[0]), abs (b[1]));
            if (b[line]>0 && b[line^1]<0)
                ret+=dif, b[line^1]+=dif, b[line]-=dif;
        }
        ret+=abs (b[0])+abs (b[1]);
    }
    cout << ret;
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...