Submission #1075467

#TimeUsernameProblemLanguageResultExecution timeMemory
1075467stdfloatPalembang Bridges (APIO15_bridge)C++17
63 / 100
2041 ms9988 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; ll f(vector<int> &v) { ll res = 0; sort(v.begin(), v.end()); for (int j = 0; j < (int)v.size(); j++) res += (j < (int)v.size() >> 1 ? -1 : 1) * v[j]; return res; } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int K, n; cin >> K >> n; ll sm = 0; vector<vector<int>> v; for (int i = 0; i < n; i++) { char p, q; int s, t; cin >> p >> s >> q >> t; if (p == q) sm += abs(t - s); else v.push_back({s + t, s, t}); } if (v.empty()) return cout << sm, 0; sm += (int)v.size(); vector<int> u; for (auto i : v) u.insert(u.end(), {i[1], i[2]}); if (K == 1) return cout << sm + f(u), 0; ll mn = LLONG_MAX; sort(v.begin(), v.end()); for (int i = 0; i < (int)v.size(); i++) { vector<int> u1, u2; for (int j = 0; j < (int)v.size(); j++) { for (auto k : {v[j][1], v[j][2]}) { (j <= i ? u1 : u2).push_back(k); } } mn = min(mn, f(u1) + f(u2)); } cout << sm + mn; }
#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...