# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
339866 | Vladikus004 | Mountain Trek Route (IZhO12_route) | C++14 | 17 ms | 2792 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
#define mp make_pair
#define pb push_back
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define inf 2e9
using namespace std;
typedef long long ll;
typedef pair <int, int> pii;
//#define int long long
const int N = 1000000 + 3;
int n, k, a[N], b[N], cnt[N], buff[N];
ll solve(int k){
vector <int> st;
for (int i = n - 1; i >= 0; i--)
if (b[i] > 0) st.pb(i);
for (int i = n - 1; i >= 0; i--){
while (!st.empty() && b[st.back()] == 0) st.pop_back();
if (b[i] > 0) st.push_back(i);
if (b[i] < 0){
while (b[i] < 0 && !st.empty()){
int gt = min(-b[i], b[st.back()]);
cnt[(st.back() + n - i) % n] += gt;
b[st.back()] -= gt;
b[i] += gt;
while (!st.empty() && b[st.back()] == 0) st.pop_back();
}
}
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |