Pagini recente » Cod sursa (job #2338152) | Cod sursa (job #1170854) | Cod sursa (job #461615) | Cod sursa (job #789954) | Cod sursa (job #2717933)
#include <fstream>
#include <deque>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
const int N = 100000;
int v[N];
long long c[N], p[N];
deque <int> dq;
int main()
{
int n, s, t;
fin >> n >> s >> t;
t++;
long long total = 0;
for(int i = 0; i < n; i++)
{
fin >> c[i] >> p[i];
if(!dq.empty() && dq.front() == i - t)
dq.pop_front();
while(!dq.empty() && c[i] <= c[dq.back()] + s * (i - dq.back()))
{
dq.pop_back();
}
dq.push_back(i);
total += p[i] * (c[dq.front()] + s * (i - dq.front()));
}
fout << total;
return 0;
}