Cod sursa(job #2888940)

Utilizator Bogdan197Putineanu Bogdan Bogdan197 Data 11 aprilie 2022 23:18:21
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <deque>

using namespace std;

int main()
{
	ifstream f("branza.in");
	ofstream g("branza.out");
	long long nr_saptamani, pret_depozit, timp_expirare;
	f >> nr_saptamani >> pret_depozit >> timp_expirare;
	long long pret, cantitate;
	deque<pair<long long, long long>> preturi;
	long long pret_total = 0;
	for(int saptamana = 0;saptamana<nr_saptamani;saptamana++)
	{
		f >> pret >> cantitate;
		while (!preturi.empty() && preturi.back().first + (saptamana - preturi.back().second) * pret_depozit > pret)
			preturi.pop_back();
		if (!preturi.empty() && saptamana - preturi.front().second > timp_expirare)
			preturi.pop_front();
		preturi.push_back(make_pair(pret, saptamana));
		pret_total += preturi.front().first * cantitate + (saptamana - preturi.front().second) * cantitate * pret_depozit;

	}													
	g << pret_total;
}