Pagini recente » Cod sursa (job #2356937) | Cod sursa (job #2593984) | Cod sursa (job #330640) | Cod sursa (job #479640) | Cod sursa (job #2068181)
#include <stdio.h>
#include <stdlib.h>
int d[100001];
int c[100001];
int p[100001];
int main()
{
int n,t,st,dr,i,s;
long long sum;
sum=0;
FILE*fin, *fout;
fin = fopen ( "branza.in", "r" );
fout = fopen ( "branza.out", "w" );
st=0;
dr=-1;
fscanf( fin, "%d%d%d", &n, &s, &t );
for( i = 0; i < n; i++ )
fscanf( fin, "%d%d", &c[i], &p[i] );
for( i = 0; i < n; i++ ){
if( st <= dr && d[st] == i-t )
st++;
while( st <= dr && c[i] <= c[d[dr]] + (long long)s * (i-d[dr]) )
dr--;
d[++dr]=i;
sum = sum + p[i] * (c[d[st]] + (long long)s * (i - d[st]) );
}
fprintf( fout, "%lld", sum );
fclose( fin );
fclose( fout );
return 0;
}