Pagini recente » Cod sursa (job #2148960) | Cod sursa (job #1239217) | Cod sursa (job #1332835) | Cod sursa (job #806574) | Cod sursa (job #2887673)
#include<fstream>
#include<iostream>
#include<deque>
using namespace std;
int costuri[100005];
int cantitate[100005];
int n,s,t;
deque<int> profitabil;
int main() {
ifstream fin("branza.in");
ofstream fout("branza.out");
fin>>n>>s>>t;
long long cost=0;
for(int i=0;i<n;i++){
fin>>costuri[i]>>cantitate[i];
if(!profitabil.empty() && i-profitabil.front()>t){
cout<<i-profitabil.front();
profitabil.pop_front();
}
while(!profitabil.empty() && costuri[profitabil.back()]*cantitate[i] + s*(i-profitabil.back())*cantitate[i] > costuri[i]*cantitate[i]){
profitabil.pop_back();
}
profitabil.push_back(i);
cost+=costuri[profitabil.front()]*cantitate[i]+s*(i-profitabil.front())*cantitate[i];
}
fout<<cost;
fout.close();
fin.close();
return 0;
}