Cod sursa(job #2611929)

Utilizator Sebastian27Marcu Sebastian Sebastian27 Data 7 mai 2020 20:36:19
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.54 kb
#include <fstream>
using namespace std;
ifstream in ("branza.in");
ofstream out ("branza.out");
const int N=100001;
long long v[N],br[N];
int main()
{
    long long sum=0, n, s ,t, st, dr, i, p;
    in>>n>>s>>t;
    st=0;
    dr=-1;
    for (i=0; i<n; i++)
    {
        in>>v[i]>>p;
        if (st<=dr && br[st]==i-t-1)
           st++;
        while (st<=dr && v[i]<=v[br[dr]]+s*(i-br[dr]))
              dr--;
        dr++;
        br[dr]=i;
        sum+=p*(v[br[st]]+s*(i-br[st]));
    }
    out<<sum<<'\n';
    return 0;
}