Cod sursa(job #2551044)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 19 februarie 2020 13:39:35
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include <fstream>
#define LEN 100005

using namespace std;

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

long long n, s, t, st, dr, sol;
long long c[LEN], p[LEN], d[LEN];

long long cost(int i, int j){
     return c[d[j]] + s*(i-d[j]);
}

int main (){
     fin>>n>>s>>t;
     for(int i=1; i<=n; i++)
          fin>>c[i]>>p[i];


     d[1]=1, st=1, dr=1;

     sol+=c[1]*p[1];
     for(int i=2; i<=n; i++){

          while(st <= dr && c[i] <= cost(i,dr))
               dr--;
          d[++dr]=i;

          if(i-d[st] == t+1) st++;

          sol+=cost(i,st) * p[i];
     }

     fout<<sol;
     return 0;
}