| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 713643 | EqualTurtle | Potatoes and fertilizers (LMIO19_bulves) | C++14 | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
constexpr int MAXN = 5e5 + 7;
long long tab[MAXN];
int n;
long long res;
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
cin >> n;
priority_queue<long long> pq;
for (int i = 1; i <= n; i++)
{
long long a;
cin >> tab[i] >> a;
tab[i] += tab[i - 1] - a;
}
for (int i = 1; i <= n; i++)
{
// modyfikacja zeby wartosci byly z przedzialu (0, #nawozow - #ziemniakow)
if (tab[i] < 0)
{
res -= tab[i];
tab[i] = 0;
}
else if (tab[i] > tab[nums])
{
res += tab[i] - tab[nums];
tab[i] = tab[nums];
}
// a dalej klasyczna sztuczka
pq.push(tab[i]);
pq.push(tab[i]);
res += pq.top() - tab[i];
pq.pop();
}
cout << res << "\n";
return 0;
}
