Cod sursa(job #2889321)

Utilizator bigboiberkeBerke Musellim bigboiberke Data 12 aprilie 2022 17:02:48
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.74 kb
	#include <iostream>
#include <deque>
#include <fstream>

using namespace std;

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

long n;
long t;
long s;
long long ct;

struct saptamana{
    long c;
    long p;
    long i;
};

deque<saptamana> b;

void branza()
{

    fin>>n>>s>>t;

    for(long i=0;i<n;i++)
    {
        saptamana ns;
        ns.i = i;
        fin>>ns.c>>ns.p;

        while(!b.empty() && b.back().c + (i-b.back().i)*s >ns.c)
            b.pop_back();
        b.push_back(ns);
        ct += (b.front().c+(i-b.front().i)*s)*ns.p;

                if(!b.empty() && i-b.front().i>=t)
                    b.pop_front();
    }
    fout<<ct;
}

int main() {
    branza();
    return 0;
}