Pagini recente » Cod sursa (job #1048980) | Cod sursa (job #2267228) | Cod sursa (job #3036489) | Cod sursa (job #2361647) | Cod sursa (job #1290346)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("branza.in");
ofstream out("branza.out");
int d[100001],st=1,dr,v[100001],c[100001],n,s,t;
void stanga(int i)
{
if(i-d[st]==t)
st++;
}
void dreapta(int i)
{
while(st<=dr && v[i]<v[d[dr]]+s*(i-d[dr]))
dr--;
d[++dr]=i;
}
int main()
{
int i;
long long sum=0;
in>>n>>s>>t;
for(i=1;i<=n;i++)
{
in>>v[i]>>c[i];
}
t++;
for(i=1;i<=n;i++)
{
stanga(i);
dreapta(i);
sum += (v[d[st]] + s* (i - d[st]) ) * c[i];
//cout<<sum<<" ";
}
out<<sum<<'\n';
return 0;
}