Pagini recente » Cod sursa (job #2694507) | Cod sursa (job #2176298) | Cod sursa (job #2426827) | Cod sursa (job #1236193) | Cod sursa (job #2456634)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
const int NMax = (int)1e5+10;
ifstream fin("branza.in");
ofstream fout("branza.out");
int total;
struct produs
{
int 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(int spt, int cant, int S){
int mini = 0x3f3f3f3f;
for(auto it: v){
int act = it.cost * cant + cant * (spt - it.sapt) * S;
mini = min(mini, act);
}
total += mini;
}
int main()
{
int cant;
int N, S, T; fin >> N >> S >> T;
for(int 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;
}