Pagini recente » Cod sursa (job #1211641) | Cod sursa (job #259062) | Cod sursa (job #504533) | Cod sursa (job #1767306) | Cod sursa (job #147992)
Cod sursa(job #147992)
#include<stdio.h>
#define maxn (1<<19)
long first = 1,last = 0;
long long exp[maxn],v[maxn];
void add(long long a,long long b)
{
while(v[last] >= a && first <= last)
{
last--;
}
v[++last] = a;
exp[last] = b;
}
int main()
{
long n,cost,t;
long long 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 long a,cat;
scanf("%lld %lld",&a,&cat);
if( exp[first] == i)
{
first++;
}
a+= (long long )cost * (n-i);
add(a,i+t+1);
s+= (v[first] - ( long long ) cost * (n-i) )*cat;
}
printf("%ld\n",s);
return 0;
}