Pagini recente » Cod sursa (job #248700) | Cod sursa (job #1260827) | Cod sursa (job #1974421) | Cod sursa (job #2340970) | Cod sursa (job #963387)
Cod sursa(job #963387)
#include<cstdio>
#define ll long long
const int N=100001;
struct sapt{
ll c,p;
};
sapt v[N];
ll d[N],s,n,t,i,sapt,nr,c1=1,c2;
int main(){
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
scanf("%I64d%I64d%I64d",&n,&t,&sapt);
for(i=1;i<=n;i++)
scanf("%I64d%I64d",&v[i].c,&v[i].p);
for(i=1;i<=n;i++){
if(i>=sapt)
if(i-d[c1]>sapt)
c1++;
while(c2>=c1 && v[i].c<=(v[d[c2]].c)+(i-d[c2])*t)
c2--;
d[++c2]=i;
s+=(v[d[c1]].c+(i-d[c1])*t)*v[i].p;
}
printf("%I64d",s);
return 0;
}