Submission #198972

#TimeUsernameProblemLanguageResultExecution timeMemory
198972virchau13Holding (COCI20_holding)C++17
0 / 110
5 ms256 KiB
#include <iostream> #include <algorithm> #include <set> #include <deque> #include <queue> using namespace std; int arr[107]; int main(){ int n, l, r, k; cin >> n >> l >> r >> k; l--; r--; int s = 0; auto cmp = [](int i, int j){ return arr[i] < arr[j]; }; auto cmpv = [](int i, int j){ return arr[i] > arr[j]; }; priority_queue<int, vector<int>, decltype(cmp)> p(cmp); priority_queue<int, vector<int>, decltype(cmpv)> q(cmpv); for(int i = 0; i < n; i++){ cin >> arr[i]; if(l <= i && i <= r){ p.push(i); s += arr[i]; } else q.push(i); } int m = s; while(k && q.size()){ if(abs(q.top() - p.top()) > k){ q.pop(); continue; } k -= abs(q.top() - p.top()); s -= arr[p.top()]; p.pop(); s += arr[q.top()]; q.pop(); m = min(m, s); } cout << m << '\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...