Pagini recente » Cod sursa (job #2080100) | Cod sursa (job #2156542) | Cod sursa (job #1997020) | Cod sursa (job #3156311) | Cod sursa (job #2863095)
#include<bits/stdc++.h>
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
int n,s,t,dq[100004];
struct elem
{
int c,p;
}v[100004];
int main()
{
int i,frontt,backk,sum=0;
f>>n>>s>>t;
for(i=1;i<=n;i++)
{
f>>v[i].c>>v[i].p;
}
frontt=1;
backk=0;
for(i=1;i<=n;i++)
{
while(frontt<=backk && v[i].c<=v[dq[backk]].c + s*(i-dq[backk]))
backk--;
backk++;
dq[backk]=i;
if(i-dq[frontt]+1>t)
frontt++;
sum+=((v[dq[frontt]].c + (i-dq[frontt])*s)*v[i].p);
}
g<<sum;
return 0;
}