punto 14 1.0 KB

123456789101112131415161718192021222324252627282930
  1. 14.
  2. problema sequíaOlímpica (j:JJOO) = result: [Pais] {
  3. armar lista de todos los paises, ordenarla por sequiaPais, devolver todos los que tengan max() de la lista
  4. asegura mismos( .. );
  5. //Quiero que cada país tenga asociada su sequía y que la lista se ordene en base a eso.
  6. aux sequiaPais(p:pais): Int
  7. = jornadaActual(j)-cuantosDiasGano(p);
  8. aux cuantosDiasGano(p:pais): Int
  9. = |[ 1 | x <- [0..jornadaActual(j)-1], ganoEnElDia(x,p) ]|;
  10. aux ganoEnElDia(dia,pais) : Bool
  11. = |[ 1 | c <- cronograma(j, dia), en(pais, paisesQueGanaronCompetencia(c)) ]|>0;
  12. aux paisesQueGanaronCompetencia(c:Competencia) : [paises]
  13. = [ pais(a) | a <- ranking(c) ];
  14. aux listaPaisesConSequia(j: JJOO) : [(Pais, Int)]
  15. = [(p, sequiaPais(p)) | p <- listaPaises(j)];
  16. aux ordenarPorSequia(ls: (Pais, Int)) : [(Pais, Int)]
  17. = Itero, busco el mayor, lo saco de la lista, busco el mayor de la sublista y voy armando la lista con eso.
  18. }
  19. *aux paisesQueGanaronCompetencia(c:Competencia) : [paises] = [ pais(ranking(c)[a]) | a <- [0.. |ranking(c) |-1 ], a <= 2 ]