Pagini recente » Cod sursa (job #1715730) | Cod sursa (job #2418984) | Cod sursa (job #2799524) | Cod sursa (job #272514) | Cod sursa (job #2714483)
#include <stdio.h>
#include <deque>
using namespace std;
deque<int>cmin;
int v[100001];
int main() {
FILE *fin, *fout;
fin = fopen( "branza.in", "r" );
fout = fopen( "branza.out", "w" );
int i, n, s, a, k;
long long total;
fscanf( fin, "%d", &n );
fscanf( fin, "%d", &s );
fscanf( fin, "%d", &k );
total = 0;
for( i = 1; i <= n; i++ ) {
fscanf( fin, "%d", &v[i] );
if( cmin.size() != 0 && cmin.front() - i > k )
cmin.pop_front();
while( cmin.size() != 0 && v[cmin.back()] + ( i - cmin.back() ) * s > v[i] )
cmin.pop_back();
cmin.push_back( i );
fscanf( fin, "%d", &a );
total = total + 1LL * ( v[cmin.front()] + ( i - cmin.front() ) * s ) * a;
}
fprintf( fout, "%lld", total );
return 0;
}