Pagini recente » Cod sursa (job #580146) | Cod sursa (job #304641) | Cod sursa (job #2775812) | Cod sursa (job #2555114) | Cod sursa (job #3163779)
#include <fstream>
#include <deque>
using namespace std;
ifstream cin ("branza.in");
ofstream cout ("branza.out");
int main ()
{
int numar_saptamani , taxa , limita;
cin >> numar_saptamani >> taxa >> limita;
long long total = 0;
deque < pair <int , int> > optiuni;
for (int indice = 1 , cost , factor ; indice <= numar_saptamani ; indice++)
{
cin >> cost >> factor;
while (!optiuni.empty() && cost <= optiuni.back().first + (indice - optiuni.back().second) * taxa)
{ optiuni.pop_back(); }
optiuni.push_back(make_pair(cost , indice));
if (optiuni.front().second == indice - limita)
{ optiuni.pop_front(); }
total += 1LL * (optiuni.front().first + (indice - optiuni.front().second) * taxa) * factor;
}
cout << total;
cout.close(); cin.close();
return 0;
}