#define USECHRONO #undef HAVE_MPI #include "eval.hpp" #include #include #include #include using namespace aed; using namespace std; bool even(int x) { return x%2==0; } bool odd(int x) { return x%2; } bool ge7(int x) { return x>=7; } bool le3(int x) { return x<=3; } bool div4(int x) { return x%4==0; } bool isprime(int x) { return is_prime(abs(x)); } bool isnotprime(int x) { return !is_prime(abs(x)); } //---:---<*>---:---<*>- COMIENZA CODIGO FUNCION --:---<*>---:---<*>---:---<*> // COMPLETAR DNI y NOMBRE AQUI: // Nombre: Ramos Patricio int DNI=42476835; void fillbalance(btree &B,list &L, btree::iterator itb) { if(L.empty()) return; if(L.size() == 1){ itb = B.insert(itb,*(L.begin())); return; } if((L.size()%2) != 0){ int cantl = L.size()/2; int cont = 0; list Lleft,Lright; auto itl = L.begin(); while(cont < L.size()){ if(cont < cantl){ Lleft.push_back(*itl); }else if(cont == cantl){ itb = B.insert(itb,*itl); }else{ Lright.push_back(*itl); } itl++; cont++; } fillbalance(B,Lleft,itb.left()); fillbalance(B,Lright,itb.right()); }else{ int cantl = L.size()/2; int cont = 0; list Lleft,Lright; auto itl = L.begin(); while(cont < L.size()){ if(cont < cantl){ Lleft.push_back(*itl); }else if(cont == cantl){ itb = B.insert(itb,*itl); }else{ Lright.push_back(*itl); } itl++; cont++; } fillbalance(B,Lleft,itb.left()); fillbalance(B,Lright,itb.right()); } } void fillbalance(btree &B,list &L) { if(L.empty()) return; if(L.size() == 1){ B.insert(B.begin(),*(L.begin())); return; } auto itb = B.begin(); fillbalance(B, L, itb); } //---:---<*>---:---<*>- FINALIZA CODIGO FUNCION --:---<*>---:---<*>---:---<*> int main() { Eval ev; int vrbs=0; ev.eval<1>(fillbalance,vrbs); return 0; }