Cod sursa(job #2714483)

Utilizator TghicaGhica Tudor Tghica Data 1 martie 2021 20:42:13
Problema Branza Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#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;
}