Pagini recente » Cod sursa (job #2713789) | Cod sursa (job #564318) | Cod sursa (job #3165919) | Cod sursa (job #759366) | Cod sursa (job #2731708)
#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;
f>>n>>s>>t;
long long sum,n,t,s;
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;
}