Cod sursa(job #2183638)

Utilizator vlad.ulmeanu30Ulmeanu Vlad vlad.ulmeanu30 Data 23 martie 2018 12:13:26
Problema Branza Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#define maxn 100000
#define inf 1e18

using namespace std;

long long _min ( long long a, long long b )
{
  if ( b < a )
    return b;
  else
    return a;
}

long long cmin[maxn+5];
int c[maxn+5];
int p[maxn+5];

int main ()
{
  ifstream fin ( "branza.in" );
  ofstream fout ( "branza.out" );

  int n, s, t;

  fin >> n >> s >> t;

  int i, j;
  long long sol = 0LL, cost = 0LL;

  for ( i = 0; i < n; i++ )
  {
    fin >> c[i] >> p[i];
    cmin[i] = inf;
  }

  for ( i = 0; i < n; i++ )
  {
    /// depozit
    for ( j = 1; j <= t && i + j < n; j++ )
    {
      cost = p[i+j] * c[i] * 1LL + s * j * p[i+j] * 1LL;
      cmin[i+j] = _min ( cost, cmin[i+j] );
    }

    sol += _min ( cmin[i], c[i] * p[i] * 1LL );
  }

  fout << sol;

  fin.close ();
  fout.close ();

  return 0;
}