Pagini recente » Cod sursa (job #1687681) | Cod sursa (job #3270259) | Cod sursa (job #2207147) | Cod sursa (job #367151) | Cod sursa (job #2625594)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int main()
{
long long int n, s, t, k;
int v[100005];
long long sum = 0;
deque <long long int> d;
fin >> n >> s >> t;
for(int i = 1; i <= n; i++)
{
fin >> v[i] >> k;
///verificam t zile depasite
if(!d.empty() && i - d.front() > t)
d.pop_front();
///verificam costul minim + taxa >= costul curent
while(!d.empty() && (long long int)(v[d.back()] + (i-d.back()) * s ) >= v[i] )
d.pop_back();
d.push_back(i);
sum += (long long int)(k * (v[d.front()] + (long long int)(i-d.front()) * s));
}
fout << sum;
return 0;
}