Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void Ronda::ficar_benzina(Ronda & re, Ronda & rd, int dist, int & g_disp, Motos & m){
- list<Info>::iterator ite = (re.ron).begin();
- list<Info>::iterator itd = (rd.ron).begin();
- list<Info>::iterator itr = (ron).end();
- int te;
- int td;
- int benz = 0;
- while ((ite != (re.ron).end() or itd != (rd.ron).end())and g_disp >= 0) {
- // falta ananitzar si una llista esta buida al principi!!!
- te = dist*100000 / m.velocidad((*ite).id - 1);
- td = dist*100000 / m.velocidad((*itd).id - 1);
- if (ite == (re.ron).end()) te = 0;
- if (itd == (rd.ron).end()) td = 0;
- //FALTA MIRAR SI TE = TD TMB COMAPRAMOS GASOLINA?
- if((te < td or (te == td and (((*ite).g_us < (*itd).g_us) or ((*ite).g_us == (itd).g_us) and (*ite).id < (*itd).id))) or itd == (rd.ron).end())) and ite != (re.ron).end()) { //afegim el e
- Info aux;
- benz = int ((m.consumo((*ite).id -1)*dist)/100); //LO QUE Necesitaremos en el recorrido
- aux.dist = (*ite).dist + dist;
- aux.g_us = (*ite).g_us + benz; //usada
- aux.id = (*ite).id;
- aux.t = (*ite).t + te;
- aux.gas = (*ite).gas;
- if ((m.capacidad_dep((*ite).id -1) - benz) >= 0) {
- if( g_disp >= benz) {
- aux.gas = m.capacidad_dep((*ite).id-1)-benz;
- g_disp -= benz;
- (ron).insert(itr,aux);
- }else {
- aux.gas = m.capacidad_dep((*ite).id-1) -g_disp;
- g_disp = 0;
- }
- }
- ++ite;
- }else if( itd != (rd.ron).end() or ite == (re.ron).end() ){ //afegim el d
- Info aux;
- benz = int ((m.consumo((*itd).id -1)*dist)/100); //LO QUE Necesitaremos en el recorrido
- aux.dist = (*itd).dist + dist;
- aux.g_us = (*itd).g_us + benz; //usada
- aux.t = (*itd).t + td;
- aux.id = (*itd).id;
- aux.gas = (*itd).gas;
- if ((m.capacidad_dep((*itd).id -1) - benz) >= 0) {
- if( g_disp >= benz) {
- aux.gas = m.capacidad_dep((*itd).id-1) - benz;
- g_disp -= benz;
- (ron).insert(itr,aux);
- }else {
- aux.gas = m.capacidad_dep((*itd).id-1) - g_disp;
- g_disp = 0;
- }
- // (ron).insert(itr,aux);
- }
- ++itd;
- }
- }
- (ron).sort(ordena_per_temps);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement