Pagini recente » Cod sursa (job #2195074) | Cod sursa (job #1992267) | Cod sursa (job #1832890) | Istoria paginii runda/14_martie_simulare_oji_2024_clasele_11_12/clasament | Cod sursa (job #2068179)
#include <stdio.h>
#include <stdlib.h>
int d[100001];
int c[100001];
int p[100001];
int main()
{
int n,t,v,st,dr,i,k,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]] + 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;
}