Pagini recente » Cod sursa (job #184339) | Cod sursa (job #2537642) | Cod sursa (job #1479965) | Cod sursa (job #1098078) | Cod sursa (job #67483)
Cod sursa(job #67483)
#include <cstdio>
using namespace std;
#define Nmax 100100
int c[Nmax], p[Nmax], w[Nmax], v[Nmax];
int main()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
int n,s,t;
scanf("%d%d%d",&n,&s,&t);
for (int i=1;i<=n;++i)
{
scanf("%d%d",&c[i],&p[i]);
v[i] = c[i] + (n-i)*s;
}
int st,dr, ret=0;
st=dr=1;
v[0] = 2114567890;
for (int i=1;i<=n;++i)
{
while(v[w[dr]] > v[i] && st<=dr)
--dr;
w[++dr] = i;
ret += (v[w[st]] - (n-i)*s)*p[i];
if(w[st] == i-t) ++st;
}
printf("%d\n", ret);
return 0;
}