Pagini recente » Cod sursa (job #1551845) | Cod sursa (job #2010626) | Cod sursa (job #1648940) | Monitorul de evaluare | Cod sursa (job #147984)
Cod sursa(job #147984)
#include<stdio.h>
#define maxn (1<<19)
long first = 1,last = 0;
long exp[maxn],v[maxn];
void add(long a,long b)
{
while(v[last] >= a && first <= last)
{
last--;
}
v[++last] = a;
exp[last] = b;
}
int main()
{
long n,cost,t,s =0;
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
scanf("%ld %ld %ld",&n , &cost, &t);
for( long i = 1; i <= n; ++i)
{
long a,cat;
scanf("%ld %ld",&a,&cat);
if( exp[first] == i)
{
first++;
}
a+= cost * (n-i);
add(a,i+t);
s+= (v[first] - cost * (n-i) )*cat;
}
printf("%ld\n",s);
return 0;
}