Pagini recente » Cod sursa (job #2882996) | Cod sursa (job #2200758) | Cod sursa (job #3278777) | Cod sursa (job #2957007) | Cod sursa (job #2731703)
#include <iostream>
#include <fstream>
using namespace std;
void Push(int deq[],int &x,int nr)
{
x++;
deq[x]=nr;
}
void PopBack(int deq[],int &x)
{
x--;
}
int v[10000000],deq[10000000],p[10000000];
ifstream f("branza.in");
ofstream g("branza.out");
int main()
{
int first=1, last=0,n,s,sum=0,t;
f>>n>>s>>t;
for(int i=1;i<=n;i++)
f>>v[i]>>p[i];
for(int i=1;i<=n;i++)
{while((first<=last) &&(v[i]<=v[deq[last]]+s*(i-deq[last])))
PopBack(deq,last);
Push(deq,last,i);
if(deq[first] == i-t-1)
first++;
sum+=(v[deq[first]]+s*(i-deq[first]))*p[i];
}
g<<sum;
return 0;
}