제출 #1083291

#제출 시각아이디문제언어결과실행 시간메모리
1083291damamilaPalembang Bridges (APIO15_bridge)C++14
100 / 100
80 ms10436 KiB
#include <bits/stdc++.h> using namespace std; #define int long long priority_queue<int> lpq; priority_queue<int, vector<int>, greater<int>> rpq; int lsum = 0, rsum = 0; void insrt(int x) { int med; if (lpq.size()) med = lpq.top(); else med = 1e9; if (x <= med) { lpq.push(x); lsum += x; } else { rpq.push(x); rsum += x; } if (lpq.size() > rpq.size()+1) { int tmp = lpq.top(); lpq.pop(); rpq.push(tmp); lsum -= tmp; rsum += tmp; } if (rpq.size() > lpq.size()) { int tmp = rpq.top(); rpq.pop(); lpq.push(tmp); rsum -= tmp; lsum += tmp; } } signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); int k, n; cin >> k >> n; int m = 0; vector<tuple<int, int, int>> num; num.push_back({0, 0, 0}); vector<int> all; int ans = 0; for (int i = 0; i < n; i++) { int a, b; char c, d; cin >> c >> a >> d >> b; if (c == d) { ans += abs(b-a); } else { m++; ans++; all.push_back(a); all.push_back(b); num.push_back({a+b, a, b}); } } sort(all.begin(), all.end()); if (k == 1) { int x = all[all.size()/2]; for (int i : all) { ans += abs(i-x); } cout << ans << endl; } else { sort(num.begin(), num.end()); //find prefixes vector<int> pref(m+1); for (int i = 1; i <= m; i++) { auto [tot, a, b] = num[i]; insrt(a); insrt(b); pref[i] = rsum-lsum; } //reset arrays int res = pref[m]; while (lpq.size()) lpq.pop(); while (rpq.size()) rpq.pop(); rsum = 0, lsum = 0; //find suffixes and answer for (int i = m; i > 0; i--) { auto [tot, a, b] = num[i]; insrt(a); insrt(b); res = min(res, rsum-lsum+pref[i-1]); } cout << res+ans << endl; } }

컴파일 시 표준 에러 (stderr) 메시지

bridge.cpp: In function 'int main()':
bridge.cpp:78:9: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   78 |    auto [tot, a, b] = num[i];
      |         ^
bridge.cpp:90:9: warning: structured bindings only available with '-std=c++17' or '-std=gnu++17'
   90 |    auto [tot, a, b] = num[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...