Pagini recente » Cod sursa (job #1748728) | Cod sursa (job #1449413) | Cod sursa (job #1190647) | Cod sursa (job #1402197) | Cod sursa (job #2694572)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("branza.in");
ofstream g ("branza.out");
long long n,cost,stricat;
deque <pair<long long,long long>> dq;
long long sol;
int main()
{
f>>n>>cost>>stricat;
for(int i=1; i<=n; ++i)
{
if(!dq.empty() && dq.front().second-i>stricat)
dq.pop_front();
long long val,it;
f>>val>>it;
while(!dq.empty() && (val<(dq.back().first+(i-dq.back().second)*cost )))
{
dq.pop_back();
}
dq.push_back({val, i});
sol+=dq.front().first*it+(i-dq.front().second)*it*cost;
}
g<<sol;
return 0;
}