Pagini recente » Cod sursa (job #395273) | Cod sursa (job #1101774) | Cod sursa (job #768416) | Cod sursa (job #2864206) | Cod sursa (job #3211003)
#include <bits/stdc++.h>
#define NMAX 100000
#define ll long long
#define MOD 666013
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int n,s,t;
ll a[NMAX+1];
ll c[NMAX+1],p[NMAX+1];
int main()
{
fin >> n >> s >> t;
for(int i=1;i<=n;i++)
{
fin >> c[i] >> p[i];
}
a[1]=c[1]*p[1];
deque<int> Q;
Q.push_back(1);
for(int i=2;i<=n;i++)
{
a[i]=p[i]*c[i];
while(!Q.empty() && Q.front() < i-t)
{
Q.pop_front();
}
if(!Q.empty())
{
a[i]=min(a[i],p[i]*c[Q.front()] + s * (i-Q.front()) * p[i]);
}
while(!Q.empty() && c[Q.back()] - s * Q.back() >= c[i] - s * i)
{
Q.pop_back();
}
Q.push_back(i);
}
long long res=0;
for(int i=1;i<=n;i++)
{
res += a[i];
}
fout << res;
}