Cod sursa(job #1690942)

Utilizator andreiudilaUdila Andrei andreiudila Data 16 aprilie 2016 12:46:54
Problema Branza Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int pret[100001];
int d[100001];
int l, r;
long long suma=0;
int n, s, t, cerere,i;


int main()
{

    fin>>n>>s>>t;

    l = 1;
    r = 0;

    for(i = 1; i <= n; ++i)
    {
        fin>>pret[i]>>cerere;

        while(l <= r && pret[i] <= pret[d[r]] + (i - d[r]) * s)
        --r;
        d[++r] = i;

        while(l <= r && i - d[l] > t)
        ++l;


        suma += ( (long long)pret[d[l]] + (i - d[l]) * s) * cerere;
    }

    fout<<suma;
    return 0;
}