Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.54 KB | None | 0 0
  1. Arbre<int> recursivitat(Arbre<int>& xp, int ETS, int sobres, const vector<int>& consumidors) {
  2.   if(xp.es_buit()) { //Cas directe
  3.     return ETS; //Retorna l'ETS.
  4.   }
  5.   else {
  6.     if(xp.arrel() > C) { //Si és productor
  7.       Arbre<int> xp1,xp2;
  8.       xp.fills(xp1,xp2);
  9.       ETS += consultar_energ_pais(xp.arrel());
  10.       if (ETS%2 == 0) { //Si energia divisible per 2.
  11.     recursivitat(xp1, ETS/2, consumidors);
  12.     recursivitat(xp2, ETS/2, consumidors);
  13.       }
  14.       else{ //Si energia no divisible per 2.
  15.     recursivitat(xp1, 1+ETS/2, consumidors);
  16.     recursivitat(xp2, ETS/2, consumidors);
  17.       }
  18.       else if(xp2.es_buit()) {//Si només té un fill
  19.     recursivitat(xp1, ETS, consumidors);
  20.       }
  21.     }
  22.     else { //Es consumidor
  23.       Arbre<int> xp1,xp2;
  24.       xp.fills(xp1,xp2);
  25.       if (ETS%2 == 0) { //Si energia divisible per 2.
  26.     recursivitat(xp1, ETS/2, consumidors);
  27.     recursivitat(xp2, ETS/2, consumidors);
  28.       }
  29.       else{ //Si energia no divisible per 2.
  30.     recursivitat(xp1, 1+ETS/2, consumidors);
  31.     recursivitat(xp2, ETS/2, consumidors);
  32.       }
  33.       else if(xp2.es_buit()) {//Si només té un fill
  34.     recursivitat(xp1, ETS, consumidors);
  35.       }
  36.     }
  37.      
  38.     if(xp.arrel() <= C) { //Consumidor
  39.       if(consumidors[xp.arrel()-1] <= ETS) { //Energia que vol és menor que l'ETS disponible.
  40.     Paisos[xp.arrel()-1].modifica_energia(ETS);
  41.       }
  42.       else { //Energia que vol és major que l'ETS disponible.
  43.     sobres = consumidors[xp.arrel()-1] - ETS;
  44.     Paisos[xp.arrel()-1].modifica_energia(ETS);
  45.       }
  46.     }  
  47.   }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement