Cod sursa(job #2888761)

Utilizator stefanliciuLiciu Vasile-Stefan stefanliciu Data 11 aprilie 2022 20:13:53
Problema Branza Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <deque>
#include <fstream>

using namespace std;

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

int main()
{
	int N, T, S, pret, cantitate;
	fin >> N >> S >> T;
	deque<pair<int, int>>deck;
	int suma = 0;
	for (int i = 1; i <= N; ++i)
	{
		fin >> pret >> cantitate;
	
			while (!deck.empty() && deck.back().first + (i - deck.back().second) * S > pret)
				deck.pop_back();

		deck.push_back(make_pair(pret, i));
		

		while (deck.front().second  + T < i)
		{  
			 deck.pop_front();
		}
		if (!deck.empty())
		{
			suma += (deck.front().first + (i - deck.front().second) * S) * cantitate;
			//cout << (deck.front().first + (i - deck.front().second) * S) * cantitate << endl;
		}
	}
	fout << suma;
}