Pagini recente » Cod sursa (job #1369900) | Cod sursa (job #1897976) | Cod sursa (job #2489717) | Cod sursa (job #2764853) | Cod sursa (job #383397)
Cod sursa(job #383397)
#include<cstdio>
int n,s,t,i,st,dr,sum,numar;
int dq[5000001];
int c[100001],p[100001];
inline void stanga(int i)
{
if (dq[st]==i-t)
++st;
}
void dreapta (int i)
{
while(st<=dr && p[i]<=p[dq[dr]] + s*(i-dq[dr]) )
--dr;
dq[++dr]=i;
}
int main()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
scanf("%d%d%d", &n , &s , &t);
for (i=1;i<=n;i++)
scanf("%d%d", &p[i], &c[i]);
st=1;
for (i=1;i<=n;i++)
{
stanga(i);
dreapta(i);
sum+=c[i]*(p[dq[st]] + s*(i-dq[st]));
}
printf("%d", sum);
return 0;
}