Pagini recente » Cod sursa (job #1819550) | Cod sursa (job #2930381) | Cod sursa (job #2469464) | Cod sursa (job #2716663) | Cod sursa (job #2888657)
#include <iostream>
#include <fstream>
#include <deque>
std::ifstream f("branza.in");
std::ofstream g("branza.out");
long long N, S, T, c[100001], p[100001], cost=0;
std::deque<long long>x;
int main()
{
long long i;
f >> N >> S >> T;
for(i=1; i<=N; i++)
f >> c[i] >> p[i];
for(i=1; i<=N; i++)
{
while(x.empty()==0 && x.front() + T < i)
x.pop_front();
while(x.empty()==0 && c[x.back()]+S*(i - x.back()) > c[i])
x.pop_back();
x.push_back(i);
cost += p[i]*(c[x.front()]+(i-x.front())*S);
}
g<<cost;
}