Submission #1274824

#TimeUsernameProblemLanguageResultExecution timeMemory
1274824kaiboyCoin Collecting (JOI19_ho_t4)C++20
100 / 100
30 ms1216 KiB
#include <algorithm> #include <iostream> using namespace std; const int N = 100000; int kk0[N], kk1[N]; int main() { ios_base::sync_with_stdio(false), cin.tie(NULL); int n; cin >> n; long long s = 0; for (int h = 0; h < n * 2; h++) { int x, y; cin >> x >> y, x--, y--; if (x < 0) s += -x, x = 0; else if (x > n - 1) s += x - (n - 1), x = n - 1; if (y < 0) s += -y, y = 0; else if (y > 1) s += y - 1, y = 1; (y ? kk1 : kk0)[x]++; } for (int k0 = 0, k1 = 0, i = 0; i < n; i++) { s += abs(k0) + abs(k1); k0 += kk0[i] - 1, k1 += kk1[i] - 1; if (k0 > 0 && k1 < 0) { int k = min(k0, -k1); s += k, k0 -= k, k1 += k; } else if (k0 < 0 && k1 > 0) { int k = min(-k0, k1); s += k, k0 += k, k1 -= k; } } cout << s << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...