Cod sursa(job #911890)
| Utilizator | Data | 11 martie 2013 22:26:36 | |
|---|---|---|---|
| Problema | Branza | Scor | 40 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.6 kb |
#include <cstdio>
using namespace std;
long long d[100100];
int s,t;
long long sol;
long long a[100100],b[100100];
int beg;
int end;
int main()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
int n;
scanf("%d%d%d",&n,&s,&t);
beg=1;
for(int i=1;i<=n;i++)
{
scanf("%lld%lld",&a[i],&b[i]);
d[++end]=i;
if(i-d[beg]>t)
beg++;
while(beg<end&&a[d[beg]]+(i-d[beg])*s>a[d[end]])
beg++;
sol+=(a[d[beg]]+(i-d[beg])*s)*b[i];
}
printf("%lld",sol);
return 0;
}
