Pagini recente » Cod sursa (job #2841585) | Cod sursa (job #1785787) | Rating Paroiu Razvan (razvy05) | Cod sursa (job #2550809) | Cod sursa (job #2034732)
#include <fstream>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int n,s,t;
int C[100005],P[100005];
int d[100005];
int main()
{ int i,fr,bc;
fin>>n>>s>>t;
for(i=1;i<=n;++i)
fin>>C[i]>>P[i];
fr=1; bc=0;
long long sum=0;
for(i=1;i<=n;++i)
{
while(fr<=bc && C[i]*P[i] <= P[i]*C[d[bc]]+P[i]*(i-d[bc])*s ) --bc;
d[++bc]=i;
if(d[fr]==i-t)
fr++;
sum+=P[i]*C[d[fr]]+P[i]*(i-d[fr])*s;
}
fout<<sum;
return 0;
}