Pagini recente » Cod sursa (job #1038621) | Cod sursa (job #2864995) | Cod sursa (job #1472309) | Cod sursa (job #262730) | Cod sursa (job #2265654)
#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;
}