Pagini recente » Cod sursa (job #1910091) | Istoria paginii runda/simulare-20.05.2022/clasament | Cod sursa (job #2495005) | Istoria paginii utilizator/mihaibreaban | Cod sursa (job #341256)
Cod sursa(job #341256)
#include<cstdio>
#define N 100001
long long v[N],x,n,t,s,d[N],u,p,total;
void citire()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
scanf("%lld%lld%lld",&n,&s,&t);
++t;
for (int i=1; i<=t; ++i)
{
scanf("%lld%lld",&v[i],&x);
while(u!=p&v[i]<=v[d[u-1]]+s*(i-d[u-1]))
--u;
d[u++]=i;
total+=x*(v[d[p]]+s*(i-d[p]));
//printf("%d\n",x*(v[d[p]]+s*(i-d[p])));
}
for (int i=t+1; i<=n; ++i)
{
scanf("%lld%lld",&v[i],&x);
int g=i-d[p];
if (g==t)
++p;
while(u!=p&v[i]<=v[d[u-1]]+s*(i-d[u-1]))
--u;
d[u++]=i;
total+=x*(v[d[p]]+s*(i-d[p]));
//printf("%d\n",x*(v[d[p]]+s*(i-d[p])));
}
printf("%lld",total);
}
int main()
{
citire();
return 0;
}