Cod sursa(job #2265654)

Utilizator Catalin_BorzaBorza Catalin-Mihai Catalin_Borza Data 21 octombrie 2018 15:19:35
Problema Branza Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.58 kb
#include <fstream>
#include <deque>
using namespace std;

struct week
{
	long long c, p, pos;
};
deque<week> d;
int main()
{
	ifstream f("branza.in");
	ofstream g("branza.out");
	long long n, s, t, sum = 0;
	f >> n >> s >> t;
	for (long long i = 1; i <= n; i++)
	{
		week w;
		w.pos = i;
		f >> w.c >> w.p;
		while (!d.empty() && w.c < d.back().c + (i - d.back().pos) * s)
			d.pop_back();
		d.push_back(w);
		sum += (d.front().c + (d.back().pos - d.front().pos) * s) * w.p;
		if (d.back().pos - d.front().pos >= t)
			d.pop_front();
	}
	g << sum;
	return 0;
}