Pagini recente » Profil serinia | Profil al3xionescu | Diferente pentru utilizator/andrici_cezar intre reviziile 21 si 22 | Monitorul de evaluare | Cod sursa (job #612912)
Cod sursa(job #612912)
#include<cstdio>
#include<deque>
using namespace std;
long long N,S,T,C,P[100010],i,SOL;
deque<int> deq;
void read(),solve();
int main()
{
read();
solve();
return 0;
}
void read()
{
freopen("branza.in","r",stdin);
freopen("branza.out","w",stdout);
scanf("%lld%lld%lld",&N,&S,&T);
}
void solve()
{
for(i=1;i<=N;i++)
{
scanf("%lld%lld",&P[i],&C);
while(!deq.empty()&& P[deq.back()]+(i-deq.back())*S>P[i])deq.pop_back();
deq.push_back(i);
while(!deq.empty()&& deq.front()<=i-T)deq.pop_front();
SOL+=P[deq.front()]*C+(i-deq.front())*S*C;
}
printf("%lld\n",SOL);
}