Submission #1265170

#TimeUsernameProblemLanguageResultExecution timeMemory
1265170happyboyCoin Collecting (JOI19_ho_t4)C++20
100 / 100
104 ms2764 KiB
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n;
    cin >> n;
    vector<pair<int, int>> a(n << 1);
    long long ans = 0;
    vector<pair<int, int>> cnt(n, {-1, -1});
    for (auto& [x, y] : a) {
        cin >> x >> y;
        if (x < 1) ans += 1 - x, x = 1;
        if (x > n) ans += x - n, x = n;
        if (y < 1) ans += 1 - y, y = 1;
        if (y > 2) ans += y - 2, y = 2;
        if (y == 1) cnt[x - 1].first++;
        else cnt[x - 1].second++;
    }
    int cnta = 0, cntb = 0;
    for (auto [aa, bb] : cnt) {
        cnta += aa; cntb += bb;
        int tmp = min(cnta, -cntb);
        if (tmp > 0) cnta -= tmp, cntb += tmp, ans += tmp;
        tmp = min(-cnta, cntb);
        if (tmp > 0) cnta += tmp, cntb -= tmp, ans += tmp;
        ans += abs(cnta) + abs(cntb);
    }
    cout << ans << "\n";
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...