Pagini recente » Cod sursa (job #144043) | Cod sursa (job #1706891) | Cod sursa (job #381085) | Cod sursa (job #1079845) | Cod sursa (job #2183638)
#include <fstream>
#define maxn 100000
#define inf 1e18
using namespace std;
long long _min ( long long a, long long b )
{
if ( b < a )
return b;
else
return a;
}
long long cmin[maxn+5];
int c[maxn+5];
int p[maxn+5];
int main ()
{
ifstream fin ( "branza.in" );
ofstream fout ( "branza.out" );
int n, s, t;
fin >> n >> s >> t;
int i, j;
long long sol = 0LL, cost = 0LL;
for ( i = 0; i < n; i++ )
{
fin >> c[i] >> p[i];
cmin[i] = inf;
}
for ( i = 0; i < n; i++ )
{
/// depozit
for ( j = 1; j <= t && i + j < n; j++ )
{
cost = p[i+j] * c[i] * 1LL + s * j * p[i+j] * 1LL;
cmin[i+j] = _min ( cost, cmin[i+j] );
}
sol += _min ( cmin[i], c[i] * p[i] * 1LL );
}
fout << sol;
fin.close ();
fout.close ();
return 0;
}