Cod sursa(job #2055597)

Utilizator ioana_99Ioana Marin ioana_99 Data 3 noiembrie 2017 15:08:00
Problema Branza Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <fstream>
#include <iostream>

using namespace std;

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

const int N = 100005;
long long n, s, t, d[N], st=1, dr, sum;

struct fint
{
    long long c,p;
};
fint v[N];

int main()
{
    f>>n>>s>>t;
    for(int i = 1; i <= n; i++)
        f>>v[i].c>>v[i].p;
    t++;
    for(int i = 1; i <= n; i++)
    {
        if(st <= dr && d[st] == i-t)
            st++;
        while(st <= dr && v[i].c <= v[d[dr]].c + s*(i - d[dr]))
            dr--;
        d[++dr] = i;
        sum += (long long)v[i].p*(v[d[st]].c + s*(i - d[st]));
    }
    g<<sum;
    return 0;
}