Pagini recente » Cod sursa (job #2602562) | Cod sursa (job #835493) | Cod sursa (job #2351932) | Cod sursa (job #2125731) | Cod sursa (job #2456635)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
const long long NMax = (long long)1e5+10;
ifstream fin("branza.in");
ofstream fout("branza.out");
long long total;
struct produs
{
long long cost, ramas, sapt;
};
vector < produs > v;
void elimina(){
vector < produs > aux;
for(auto it: v){
it.ramas--;
if(it.ramas){
aux.push_back(it);
}
}
v = aux;
}
void alege(long long spt, long long cant, long long S){
long long mini = 0x3f3f3f3f;
for(auto it: v){
long long act = it.cost * cant + cant * (spt - it.sapt) * S;
mini = min(mini, act);
}
total += mini;
}
int main()
{
long long cant;
long long N, S, T; fin >> N >> S >> T;
for(long long i=1; i<=N; i++){
elimina();
produs pr;
fin >> pr.cost >> cant;
pr.ramas = T;
pr.sapt = i;
v.push_back(pr);
alege(i, cant, S);
}
fout << total;
return 0;
}