Cod sursa(job #2063837)

Utilizator SpiristulTeribilStefan Vilcu SpiristulTeribil Data 11 noiembrie 2017 15:34:04
Problema Branza Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>

using namespace std;

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

long long v[100001] , d[100001] ;

int main()
{
    long long n , s ,t , st , dr , p ;
    long long rez = 0 ;
    cin >> n >> s >> t ;
    t++ ;
    st = 0 ;
    dr = 1 ;
    for (int i = 0 ; i < n ; i++) {
         cin >> v[i] >> p ;
         if (st <= dr && d[st] == i - t)
             st++ ;
         while (st <= dr && v[i] <= v[d[dr]] + s * (i - d[dr]))
             dr-- ;

    d[++dr] = i ;
    rez += p * (v[d[st]] + s * (i - d[st])) ;
    }

    cout << rez ;
    return 0;

}