Pagini recente » Cod sursa (job #3123961) | Cod sursa (job #1359506) | Cod sursa (job #1512616) | Cod sursa (job #599880) | Cod sursa (job #904960)
Cod sursa(job #904960)
#include<cstdio>
#include<deque>
using namespace std;
int main()
{
freopen("branza.in","r",stdin);freopen("branza.out","w",stdout);
deque<int>d;int n,s,t,v1[100005],v2[100005],i,pr=0;
scanf("%d%d%d",&n,&s,&t);
for(i=1;i<=n;++i)
{
scanf("%d%d",&v1[i],&v2[i]);
while(!d.empty()&&(i-d.back())*s>v1[i]-v1[d.back()])
d.pop_back();
d.push_back(i);
if(i-t==d.front())
d.pop_front();
if(i==d.front())
pr+=v2[i]*v1[d.front()];
else
pr+=v2[i]*v1[d.front()]+v2[i]*s*(i-d.front());
}
printf("%d",pr);
}