Pagini recente » Cod sursa (job #1216523) | Cod sursa (job #3212051) | Cod sursa (job #1529694) | Cod sursa (job #2706291) | Cod sursa (job #513204)
Cod sursa(job #513204)
#include<fstream>
using namespace std;
const int N =100001;
int c[N],p[N],dq[N],n,i,t,s,st=1,dr=0;
long long int suma=0;
ifstream in("branza.in");
ofstream out("branza.out");
inline void stanga(int i)
{
if (i-dq[st]>t)
++st;
}
inline void dreapta(int i)
{
while (st<=dr && c[dq[dr]]+(i-dq[dr])*s>=c[i])
dr--;
}
inline void adauga(int i)
{
dq[++dr]=i;
}
int main()
{
in>>n>>s>>t;
for (i=1;i<=n;i++)
{
in>>c[i]>>p[i];
stanga(i);
dreapta(i);
adauga(i);
suma=suma+(c[dq[st]]+(i-dq[st])*s)*p[i];
}
out<<suma;
}