Pagini recente » Cod sursa (job #319045) | Cod sursa (job #2010951) | Cod sursa (job #402124) | Cod sursa (job #1119150) | Cod sursa (job #2888940)
#include <fstream>
#include <deque>
using namespace std;
int main()
{
ifstream f("branza.in");
ofstream g("branza.out");
long long nr_saptamani, pret_depozit, timp_expirare;
f >> nr_saptamani >> pret_depozit >> timp_expirare;
long long pret, cantitate;
deque<pair<long long, long long>> preturi;
long long pret_total = 0;
for(int saptamana = 0;saptamana<nr_saptamani;saptamana++)
{
f >> pret >> cantitate;
while (!preturi.empty() && preturi.back().first + (saptamana - preturi.back().second) * pret_depozit > pret)
preturi.pop_back();
if (!preturi.empty() && saptamana - preturi.front().second > timp_expirare)
preturi.pop_front();
preturi.push_back(make_pair(pret, saptamana));
pret_total += preturi.front().first * cantitate + (saptamana - preturi.front().second) * cantitate * pret_depozit;
}
g << pret_total;
}