제출 #1288881

#제출 시각아이디문제언어결과실행 시간메모리
1288881g4yuhgCoin Collecting (JOI19_ho_t4)C++20
100 / 100
40 ms5132 KiB
#include<bits/stdc++.h> typedef long long ll; #define int long long #define pii pair<ll, ll> #define fi first #define se second #define endl '\n' #define TASK "-" #define N 200055 #define LOG 17 using namespace std; const ll inf = 1e18; bool ghuy4g; ll n, ans; pii p[N]; ll a[N][2]; set<ll> s[3]; inline ll cal(ll x, ll y, ll u, ll v) { return abs(x - y) + abs(u - v); } void solve() { ll d1 = 0, d2 = 0; for (int i = 1; i <= n; i ++) { d1 += a[i][1] - 1; d2 += a[i][2] - 1; if (d1 > 0 && d2 < 0) { ll t = min(d1, -d2); ans += t; d1 -= t; d2 += t; } else if (d1 < 0 && d2 > 0) { ll t = min(-d1, d2); ans += t; d1 += t; d2 -= t; } ans += abs(d1) + abs(d2); } cout << ans; } bool klinh; signed main() { // freopen("test.inp", "r", stdin); //freopen("test.out", "w", stdout); //srand(time(0)); ios_base::sync_with_stdio(0); cin.tie(0); cin >> n; for (int i = 1; i <= n * 2; i ++) { cin >> p[i].fi >> p[i].se; ll x = 0, y = 0; if (p[i].se == 1 || p[i].se == 2) { if (p[i].fi < 1) { x = 1, y = p[i].se; } else if (p[i].fi > n) { x = n, y = p[i].se; } else { x = p[i].fi, y = p[i].se; } } else if (p[i].se < 1) { if (p[i].fi < 1) { x = 1, y = 1; } else if (p[i].fi > n) { x = n, y = 1; } else { x = p[i].fi, y = 1; } } else if (p[i].se > 2) { if (p[i].fi < 1) { x = 1, y = 2; } else if (p[i].fi > n) { x = n, y = 2; } else { x = p[i].fi, y = 2; } } a[x][y] ++ ; ans += abs(x - p[i].fi) + abs(y - p[i].se); } solve(); cerr << fabs(&klinh - &ghuy4g) / double(1024 * 1024); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...