Pagini recente » Cod sursa (job #2755048) | Cod sursa (job #2646518) | Cod sursa (job #961819) | Cod sursa (job #3160735) | Cod sursa (job #3170802)
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream f("branza.in");
ofstream g("branza.out");
int main()
{ int n , s , t , i , cantitate;
f >> n >> s >> t;
vector <int> cost( n + 1 );
long long costt = 0;
deque <int> dq;
for ( i = 0; i < n; i++ ){
f >> cost[i] >> cantitate;
while (( !dq.empty() )&&( dq.front() == i- t ))
dq.pop_front();
while (( !dq.empty() )&&( cost[i] <= cost[dq.back()] + ( i - dq.back() ) * s ))
dq.pop_back();
dq.push_back( i );
costt += ( long long ) cantitate * ( cost[dq.front()] + ( i - dq.front() ) * s );
}
g << costt;
return 0;
}