Pagini recente » Cod sursa (job #346795) | Cod sursa (job #1567509) | Cod sursa (job #3190247) | Cod sursa (job #1889232) | Cod sursa (job #383400)
Cod sursa(job #383400)
#include<cstdio>
int n,s,t,i,st,dr,numar;
long long sum;
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+= (long long) (c[i]*(p[dq[st]] + s*(i-dq[st])));
}
printf("%lld", sum);
return 0;
}