Pagini recente » Cod sursa (job #176811) | Cod sursa (job #2381696) | Cod sursa (job #355654) | Cod sursa (job #1712684) | Cod sursa (job #3239677)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int n,s,t,pret,cant[100001],i;
struct sap{
int p,c;
}v[100001],brz;
int main()
{
fin>>n>>s>>t;
for(i=1;i<=n;i++)
fin>>v[i].p>>v[i].c,cant[i] = v[i].c + cant[i-1];
pret = cant[min(n,t)] * v[1].p;
brz.c = cant[min(n,t)] - cant[1];
brz.p = 1;
for(i=2;i<=n;i++){
if(brz.c == 0 || (v[i].p * v[i].c <= v[i].c * (v[brz.p].p + (i-brz.p) * s))){
pret -= brz.c * v[brz.p].p;
pret += (cant[min(n,i+t-1)]-cant[i-1]) * v[i].p;
brz.c = cant[min(n,i+t-1)] - cant[i];
brz.p = i;
}else{
brz.c -= v[i].c;
pret += v[i].c * (i-brz.p) * s;
}
}
fout<<pret;
return 0;
}