Submission #497049

# Submission time Handle Problem Language Result Execution time Memory
497049 2021-12-22T09:03:01 Z ergagan Coin Collecting (JOI19_ho_t4) C++17
0 / 100
1 ms 332 KB
//я так много думал, что опять попал
#include <bits/stdc++.h>
#define all(x) x.begin(),x.end()
#define pb push_back
#define ppb pop_back
#define pf push_front
#define ppf pop_front
#define f first
#define s second
#define left(v) v + v
#define right(v) v + v + 1
#define ub upper_bound
#define lb lower_bound
#define pll pair<ll,ll>

using namespace std;
typedef long long ll;

//17 SEVENTEEN
const long double Pi = acos(-1.0);
const ll dx[] = {0,0,1,-1};
const ll dy[] = {1,-1,0,0};
const ll N = (ll) 1e6 + 17;
const ll M = (ll) 5e3 + 69;
const ll inf = (ll) 1e14 + 3;
const ll mod = (ll) 1e9 + 7;
ll sq(ll x) { return x * x; }

ll zxc = 1, x, y, a[5][N], sum[5];

void solve() {
    ll n, ans = 0;
    cin >> n;
    for(ll i = 1; i <= 2 * n; i++) {
        cin >> y >> x;
        if(1 <= x && x <= 2 && 1 <= y && y <= n) a[x][y]++;
        else if(x < 1 && y < 1) {
            a[1][1]++;
            ans += abs(x - 1), ans += abs(y - 1);
        }
        else if(x < 1 && y > n) {
            a[1][n]++;
            ans += abs(x - 1), ans += abs(y - n);
        }
        else if(y < 1 && x > 2) {
            a[2][1]++;
            ans += abs(x - 2), ans += abs(y - 1);
        }
        else if(x > 2 && y > n) {
            a[2][n]++;
            ans += abs(x - 2), ans += abs(y - n);
        }
        else if(1 <= x && x <= 2 && y < 1)
            a[x][1]++, ans += abs(y - 1);

        else if(1 <= x && x <= 2 && y > n)
            a[x][n]++, ans += abs(y - n);

        else if(1 <= y && y <= n && x < 1)
            a[1][y]++, ans += abs(x - 1);

        else if(1 <= y && y <= n && x > 2)
            a[2][y]++, ans += abs(x - 2);
    }

    for(ll i = 1; i <= 2; i++) {
        for(ll j = 1; j <= n; j++) {
//            cout << a[i][j] << " ";
            sum[i] += a[i][j];
        }
//        cout << sum[i] << "\n";
    }

    if(sum[1] > sum[2]) {
        ll x = a[1][1] - 1;
        a[1][1] -= min(x, sum[1] - sum[2]);
        a[2][1] += min(x, sum[1] - sum[2]);
        sum[1] -= min(x, sum[1] - sum[2]);
        ans += min(x, sum[1] - sum[2]);

        x = a[1][n] - 1;

        a[1][n] -= min(x, sum[1] - sum[2]);
        a[2][n] += min(x, sum[1] - sum[2]);
        ans += min(x, sum[1] - sum[2]);
    }
    else {
        ll x = a[2][1] - 1;
        a[2][1] -= min(x, sum[2] - sum[1]);
        a[1][1] += min(x, sum[2] - sum[1]);
        sum[2] -= min(x, sum[2] - sum[1]);
        ans += min(x, sum[2] - sum[1]);

        x = a[1][n] - 1;

        a[2][n] -= min(x, sum[2] - sum[1]);
        a[1][n] += min(x, sum[1] - sum[2]);
        sum[2] -= min(x, sum[2] - sum[1]);
        ans += min(x, sum[2] - sum[1]);
    }

    for(ll i = 1; i <= 2; i++) {
        for(ll j = 1; j <= n; j++) {
            if(a[i][j] > 1) a[i][j]--, a[i][j + 1]++, ans++;
        }
        for(ll j = n; j >= 1; j--) {
            if(a[i][j] > 1) a[i][j]--, a[i][j - 1]++, ans++;
        }
    }
    cout << ans;
}

int main(/*Уверенно*/) {
ios_base::sync_with_stdio(0);
    cin.tie(0);
/*
	freopen(".in", "r", stdin);
	freopen(".out", "w", stdout);
*/
//    cin >> zxc;
    while(zxc--) {
        solve();
    }
  	return 0;
}
// さよならさ いかなくちゃ
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Incorrect 0 ms 332 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Incorrect 0 ms 332 KB Output isn't correct
6 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 332 KB Output is correct
2 Correct 1 ms 204 KB Output is correct
3 Correct 0 ms 332 KB Output is correct
4 Correct 1 ms 332 KB Output is correct
5 Incorrect 0 ms 332 KB Output isn't correct
6 Halted 0 ms 0 KB -