Pagini recente » Cod sursa (job #1271939) | Cod sursa (job #2789591) | Cod sursa (job #2941723) | Cod sursa (job #2910319) | Cod sursa (job #2719363)
#include <fstream>
#include <deque>
using namespace std;
ifstream cin ("branza.in");
ofstream cout ("branza.out");
const int Nmax=100001;
int v[Nmax];
deque <int> d;
int main()
{
long long n, s, t, r=0, p;
cin >> n >> s >> t;
t++;
for (int i=1; i<=n; i++)
{
cin >> v[i] >> p;
if (!d.empty() && d.front()==i-t)
{
d.pop_front();
}
while (!d.empty() && v[i]<=v[d.back()]+s*(i-d.back()))
{
d.pop_back();
}
d.push_back(i);
r+=(v[d.front()]+s*(i-d.front()))*(long long)p;
}
cout << r;
return 0;
}