Cod sursa(job #2500083)

Utilizator miha5092mihai mitrea miha5092 Data 27 noiembrie 2019 11:17:04
Problema Branza Scor 40
Compilator cpp-64 Status done
Runda guritza Marime 1.16 kb
#include <fstream>

using namespace std;

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

long long n, s, t;
long long ans;
long long c[100005], p[100005];
long long zi_prod[100005];

int main()
{
    in >> n >> s >> t ;
    for(long long i=1; i<=n; i++) /// #MexicanulFlaviu
    {
        in >> c[i] >> p[i] ;
    }
    long long st=1, dr=1;
    zi_prod[1] = 1 ;
    ans = (long long)c[1] * p[1] ;
    for(long long i=2; i<=n; i++) /// #AlexiaEsteGay /// #TechinallyTheTruth
    {
        if(i - st > t)
        {
            st++;
        }
        if(c[i] <= c[zi_prod[st]] + (long long)s*(i-st)) /// #StefanCombinatozaur /// #MiriEsteGay
        {
            dr++;
            zi_prod[dr] = i ;
            st = dr ;
            ans = ans + (long long)(c[st] + (long long)s*(i-st)) * p[i] ;
        }
        else if(c[i] > (long long)s*(i-st) + c[zi_prod[st]]) /// #ComentezCatVreau /// #Rebel /// #PisicaBogdan
        {
            dr++;
            zi_prod[dr] = i ;
            ans = ans + (long long)(c[st] + (long long)s*(i-st)) * p[i] ; /// #ShaormaCuCasiFaraCeapa
        }
    }
    out << ans ; /// #1-0
    return 0;
}