Pagini recente » Cod sursa (job #2872034) | Cod sursa (job #2361912) | Cod sursa (job #1803005) | Cod sursa (job #1876722) | Cod sursa (job #1806584)
#include <cstdio>
#include <deque>
using namespace std;
int n, s, t;
int a[100000], b[100000];
deque<int> Q;
void citire()
{
scanf("%d %d %d", &n, &s, &t);
for(int i = 0; i < n; i++)
{
scanf("%d %d", &a[i], &b[i]);
}
}
void solve()
{
int suma = a[0] * b[0];
Q.push_back(0);
for(int i = 1; i < n; i++)
{
while(!Q.empty() && (i - Q.back()) * s + a[Q.back()] > a[i])
{
Q.pop_back();
}
Q.push_back(i);
if(i - Q.front() > t)
{
Q.pop_front();
}
int tmp = Q.front();
suma += (a[Q.front()] + (i - Q.front()) * s) * b[i];
}
// for(int i = 1; i < t; i++)
// {
// suma += a[Q.front()] * b[Q.front()];
// if(Q.front() != n - 1)
// {
// Q.pop_front();
// }
// }
printf("%d", suma);
}
int main()
{
freopen("branza.in", "r", stdin);
freopen("branza.out", "w", stdout);
citire();
solve();
return 0;
}