Pagini recente » Cod sursa (job #1471579) | Cod sursa (job #548854) | Cod sursa (job #480046) | Cod sursa (job #3218448) | Cod sursa (job #2729030)
#include <iostream>
#include <fstream>
#include <queue>
#define v first
#define s second
using namespace std;
ifstream fin("branza.in");
ofstream fout("branza.out");
int N, K, T;
int c, p;
long long S;
queue < pair < int, int > > B;
void Solve()
{
fin >> N >> K >> T;
int cost;
for( int i = 1; i <= N; ++i )
{
fin >> c >> p;
cost = c;
while( !B.empty() )
{
if( i - B.front().s <= T && B.front().v + (i - B.front().s) * K < cost)
{
cost = B.front().v + (i - B.front().s) * K;
break;
}
B.pop();
}
B.push( {c,i} );
S += 1LL*cost*p;
}
fout << S;
}
int main()
{
Solve();
return 0;
}