Submission #552680

#TimeUsernameProblemLanguageResultExecution timeMemory
552680QwertyPiPalembang Bridges (APIO15_bridge)C++14
22 / 100
120 ms4924 KiB
#include <bits/stdc++.h> #define fi first #define se second #define int long long #define inf (1LL << 60) using namespace std; const int N = 1e5+1; typedef pair<int, int> pii; int d[N]; int f(int l, int r, int x){ if(x < l) return l - x; if(x > r) return x - r; return 0; } int32_t main(){ int k, n; cin >> k >> n; vector<pii> A; int add = 0; for(int i = 0; i < n; i++){ char c1, c2; int p1, p2; cin >> c1 >> p1 >> c2 >> p2; add += abs(p2 - p1); if(c1 != c2) add++, A.push_back({min(p1, p2), max(p1, p2)}); } int ans1 = 0, c1 = 0, p1 = 0, ans = 0, ans2 = inf; for(int i = 0; i < A.size(); i++){ c1 += A[i].fi * 2; } ans1 = c1; int l = 0, r = A.size(); vector<int> q; for(int i = 0; i < A.size(); i++){ q.push_back(A[i].fi); q.push_back(A[i].se); } sort(q.begin(), q.end()); for(int i = 0; i < A.size() * 2; i++){ c1 += (q[i] - p1) * (l - r) * 2; p1 = q[i]; ans1 = min(ans1, c1); r--; } if(k == 1){ cout << add + ans1 << endl; return 0; } ans = add + ans1; n = A.size() * 2, k = A.size(); for(int x1 = 0; x1 < n; x1++){ for(int x2 = x1; x2 < n; x2++){ int res = 0; for(int i = 0; i < k; i++){ int f1 = f(A[i].fi, A[i].se, q[x1]), f2 = f(A[i].fi, A[i].se, q[x2]); res += min(f1, f2); } ans2 = min(ans2, res); } } ans = min(ans, add + ans2); cout << ans << endl; }

Compilation message (stderr)

bridge.cpp: In function 'int32_t main()':
bridge.cpp:31:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   31 |  for(int i = 0; i < A.size(); i++){
      |                 ~~^~~~~~~~~~
bridge.cpp:37:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   37 |  for(int i = 0; i < A.size(); i++){
      |                 ~~^~~~~~~~~~
bridge.cpp:42:19: warning: comparison of integer expressions of different signedness: 'long long int' and 'std::vector<std::pair<long long int, long long int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   42 |  for(int i = 0; i < A.size() * 2; i++){
      |                 ~~^~~~~~~~~~~~~~
#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...