#define USECHRONO #undef HAVE_MPI #include "eval.hpp" #include #include #include #include using namespace aed; using namespace std; //---:---<*>---:---<*>- COMIENZA CODIGO FUNCION --:---<*>---:---<*>---:---<*> // COMPLETAR DNI y NOMBRE AQUI: // Nombre: Bob Esponja int DNI=44839721; void subk(set &S, int k, set C, set::iterator itS, list> &LK) { if (itS == S.end()){return;} if (k == 0) { LK.insert(LK.begin(),C); return;} set D = C; C.insert(C.end(), *itS); itS++; if (C.size() == k){ LK.insert(LK.end(),C); } subk(S,k,C,itS,LK); subk(S,k,D,itS,LK); } list> subk(set &S) { set C; C.clear(); list> LK; set::iterator itS = S.begin(); for(int i=1;i<(S.size()-1);i++){ subk(S,i,C,itS,LK); } return LK; } float promedio(set&S){ int prom=0; if(S.size()==0){ return 0; } for(int aux:S){ prom+=aux; } return (prom/S.size()); } set MasCercano(set&S1,set&S2,float Prom){ float prom1=0; float prom2=0; prom1=promedio(S1); prom2=promedio(S2); if(fabs(Prom-prom1) == fabs(Prom-prom2)){ auto it1=S1.begin(); auto it2=S2.begin(); if(*it1>*it2){ return S1; }else{ return S2; } } if(abs(Prom-prom1) < abs(Prom-prom2)){ return S1; }else{ return S2; } } void get_largest_subset(set &S, set &C){ if(S.size()==0){ C.clear(); return; } if(S.size()==1){ C=S; return; } if(S.size()>1){ float prom=promedio(S); list>Super=subk(S); auto aux1=Super.begin(); while(aux1!=prev(Super.end())){ seta=*aux1; aux1++; setb=*aux1; setd; d.clear(); d=MasCercano(a,b,prom); C=MasCercano(C,d,prom); } return; } //COMPLETAR! } //---:---<*>---:---<*>- FINALIZA CODIGO FUNCION --:---<*>---:---<*>---:---<*> int main() { Eval ev; int vrbs=0; ev.eval<1>(get_largest_subset,vrbs); return 0; }