Pagini recente » Cod sursa (job #2301495) | Cod sursa (job #1349447) | Cod sursa (job #2612018) | Cod sursa (job #2281241) | Cod sursa (job #2889600)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
deque<int> pretPerKg, saptamana;
int main() {
int nrSaptamani, taxaDepozitare, timpDepozitare, index, pret, cantitate, suma = 0;
fin >> nrSaptamani >> taxaDepozitare >> timpDepozitare;
for (index = 0; index < nrSaptamani; index += 1) {
fin >> pret >> cantitate;
while (pretPerKg.empty() == 0 and pret <= pretPerKg.back() + taxaDepozitare * (index - saptamana.back())) {
pretPerKg.pop_back();
saptamana.pop_back();
}
pretPerKg.push_back(pret);
saptamana.push_back(index);
while (pretPerKg.empty() == 0 and saptamana.front() < index - timpDepozitare) {
pretPerKg.pop_front();
saptamana.pop_front();
}
suma += cantitate * (pretPerKg.front() + taxaDepozitare * (index - saptamana.front()));
}
fout << suma;
return 0;
}