Pagini recente » Cod sursa (job #753399) | Cod sursa (job #1729656) | Monitorul de evaluare | Cod sursa (job #1354985) | Cod sursa (job #2775879)
#include<cstdio>
#include<algorithm>
#include<deque>
using namespace std;
FILE*in=fopen("branza.in","r");
FILE*out=fopen("branza.out","w");
long long n,s,t,c,p,i,j;
long long ras;
struct str
{
long long po,val;
};
str x;
int main()
{
fscanf(in,"%d%d%d",&n,&s,&t);
deque<str> dq;
for(i=0;i<n;i++)
{
fscanf(in,"%d%d",&c,&p);
while(!dq.empty()&&dq.back().val+(i-dq.back().po)*s>c)
{
dq.pop_back();
}
x.po=i;
x.val=c;
dq.push_back(x);
if(i-dq.front().po>t)
{
dq.pop_front();
}
ras+=(dq.front().val+(i-dq.front().po)*s)*p;
}
fprintf(out,"%lld",ras);
}