Pagini recente » Cod sursa (job #1221300) | Cod sursa (job #2098183) | Istoria paginii runda/3271c72e82/clasament | Cod sursa (job #1294122) | Cod sursa (job #383398)
Cod sursa(job #383398)
#include<cstdio>
int sum,n,s,t,st,dr,k;
int i,a[10000],b[10000],dq[100000];
inline void stanga(int i)
{
if (dq[st]==i-t)
st=st+1;
}
void dreapta (int i)
{
while (st<=dr && a[i]<=a[dq[dr]]+s*(i-dq[dr]))
dr=dr-1;
dq[++dr]=i;
}
int main ()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
scanf("%d%d%d",&n,&s,&t);
st=1;
dr=0;
for (i=1;i<=n;i++)
scanf("%d%d",&a[i],&b[i]);
for (i=1;i<=n;i++)
{
stanga(i);
dreapta(i);
sum=sum+b[i]*(a[dq[st]]+s*(i-dq[st]));
}
printf("%d",sum);
return 0;
}