Pagini recente » Cod sursa (job #1356797) | Cod sursa (job #2054280) | Cod sursa (job #1302170) | Cod sursa (job #2035527) | Cod sursa (job #1637142)
#include<cstdio>
#include<deque>
using namespace std;
int main()
{
freopen("branza.in", "r", stdin);
freopen("branza.out", "w", stdout);
long long n, s, t, i, cerere, pret, x, y;
long long sumtot=0;
deque<pair<long long, long long> > dep;
scanf("%lld%lld%lld", &n, &s, &t);
for(i=1; i<=n; i++)
{
scanf("%lld%lld", &pret, &cerere);
if(!dep.empty())
{
x=dep.front().first;
y=dep.front().second;
sumtot+=min(cerere*pret, cerere*(x+s*(i-y)));
}
else
sumtot+=cerere*pret;
while(!dep.empty() && pret+s<dep.back().first+s*(i-dep.back().second+1))
dep.pop_back();
dep.push_back(make_pair(pret, i));
if(!dep.empty()&&(i-dep.front().second>=t))
dep.pop_front();
}
printf("%lld", sumtot);
return 0;
}