Cod sursa(job #2888020)

Utilizator widzAndrei-Daniel Tava widz Data 10 aprilie 2022 16:34:04
Problema Branza Scor 40
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <fstream>
#include <deque>


int main()
{
	using namespace std;
	ifstream in("branza.in");
	ofstream out("branza.out");
	deque<pair<long long, long long>> cost_deq;
	long long saptamani, stoc_cost, max_stoc, cost, cerere;
	long long cost_min = 0;
	in >> saptamani >> stoc_cost >> max_stoc;
	for(int i=0;i<saptamani;++i)
	{
		in >> cost >> cerere;
		while (!cost_deq.empty() && cost < cost_deq.back().second + stoc_cost * (i - cost_deq.back().first))
			cost_deq.pop_back();
		cost_deq.push_back(make_pair(i, cost));
		if (cost_deq.front().first <= i - max_stoc)
			cost_deq.pop_front();
		cost_min += cerere * (cost_deq.front().second + stoc_cost * (i - cost_deq.front().first));
	}
	in.close();
	out << cost_min;
	out.close();

	
}