#define USECHRONO #undef HAVE_MPI #include "eval.hpp" #include #include #include #include #include #include using namespace aed; using namespace std; //---:---<*>---:---<*>- COMIENZA CODIGO FUNCION --:---<*>---:---<*>---:---<*> // COMPLETAR DNI y NOMBRE AQUI: // Nombre: Palacios Jorge int DNI=43644738; //---:---<*>---:---<*>---:---<*>---:---<*>---:---<*> bool suma(set&S,int &prom){ auto it = S.begin(); int cont = 0; while(it != S.end()){ cont += *it; it++; } if(cont == prom){ return true; } return false; } int getProm(set&S){ float sum = 0; auto it = S.begin(); while(it != S.end()){ sum += *it; it++; } return sum/S.size(); } list> getSubsets(set&S){ list> subset_p; set vacio = {}; subset_p.push_back(vacio); if (S.empty()) { return subset_p; } vector elements(S.begin(), S.end()); for (size_t i = 0; i < (1 << elements.size()); ++i) { set subset; for (size_t j = 0; j < elements.size(); ++j) { if ((i & (1 << j)) > 0) { subset.insert(elements[j]); } } if (subset != S) { subset_p.push_back(subset); } } return subset_p; } bool prom_subc(set &S) { list> allSub = {}; allSub = getSubsets(S); int prom = getProm(S); auto it = allSub.begin(); while(it != allSub.end()){ if(suma(*it,prom)){ return true; } it++; } return false; } int main() { Eval ev; int vrbs = 0; ev.eval<1>(prom_subc,vrbs); return 0; }