Submission #744588

#TimeUsernameProblemLanguageResultExecution timeMemory
744588Desh03Palembang Bridges (APIO15_bridge)C++17
0 / 100
1 ms320 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(0); long long k, n, ans = 1e18, ss = 0, S = 0, S2 = 0; cin >> k >> n; vector<long long> a, b; for (int i = 0; i < n; i++) { char x, y; int s, t; cin >> x >> s >> y >> t; if (x == y) { ss += abs(s - t); continue; } if (x == 'A') a.push_back(s), b.push_back(t); else a.push_back(t), b.push_back(s); } sort(a.begin(), a.end()); sort(b.begin(), b.end()); n = a.size(); vector<long long> pre1(n + 1), pre2(n + 1); for (int i = 0; i < n; i++) pre1[i + 1] = pre1[i] + a[i], S += a[i]; for (int i = 0; i < n; i++) pre2[i + 1] = pre2[i] + b[i], S2 += b[i]; for (auto x : a) { long long k = upper_bound(a.begin(), a.end(), x) - a.begin(); long long k2 = upper_bound(b.begin(), b.end(), x) - b.begin(); ans = min(ans, 2 * (x * (k + k2 - n) - pre1[k] - pre2[k2])); } for (auto x : b) { long long k = upper_bound(a.begin(), a.end(), x) - a.begin(); long long k2 = upper_bound(b.begin(), b.end(), x) - b.begin(); ans = min(ans, 2 * (x * (k + k2 - n) - pre1[k] - pre2[k2])); } cout << ans + S + S2 + ss + n << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...