Pagini recente » Cod sursa (job #1349713) | Cod sursa (job #905503) | Cod sursa (job #1522416) | Cod sursa (job #1927822) | Cod sursa (job #3175620)
//Ilie Dumitru
#include<fstream>
#include<deque>
const int NMAX=100005;
int N, S, T;
int p[NMAX], c[NMAX];
int v[NMAX];
int main()
{
int i, j;
std::deque<int> dq;
long long suma=0;
std::ifstream f("branza.in");
std::ofstream g("branza.out");
f>>N>>S>>T;
for(i=0;i<N;++i)
{
f>>c[i]>>p[i];
v[i]=c[i]-i*S;
}
for(i=0;i<N;++i)
{
if(!dq.empty() && dq.front()==i-T-1)
dq.pop_front();
while(!dq.empty() && v[dq.back()]>=v[i])
dq.pop_back();
dq.push_back(i);
j=dq.front();
suma+=p[i]*(long long)((i-j)*S+c[j]);
}
g<<suma<<'\n';
return 0;
}