Solução: Problema do baile de casais (Cátia Souza)
From AdonaiMedrado.Pro.Br
import java.io.BufferedReader; import java.io.Console; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.LinkedList; import java.util.Scanner; import java.util.SortedMap; import java.util.SortedSet; import java.util.TreeSet; public class BaileCasais { /** * @param args */ public static void main(String[] args) throws IOException{ ArrayList<Integer> Homens = new ArrayList<Integer>(); SortedSet<Integer> Mulheres= new TreeSet<Integer>(); Scanner scanner = new Scanner( System.in ); Integer numeroConvidados = scanner.nextInt(); while(numeroConvidados>0){ Integer convidado; if((convidado = scanner.nextInt())%2==0){ Mulheres.add(convidado); } else{ Homens.add(convidado); } numeroConvidados--; } System.out.println(juntaCasais(Homens,Mulheres)); } public static Character juntaCasais(ArrayList<Integer> homis, SortedSet<Integer> muies){ int iteracoes = muies.size(); boolean juntou; while(iteracoes>=0){ if(!muies.isEmpty()){ Integer muie = muies.last(); juntou=false; for(Integer homi: homis){ if((juntou==false) && (homi>muie)){ muies.remove(muie); juntou = true; } } if(juntou==false) return 'F'; iteracoes--; } else{ break; } } if(muies.isEmpty()){ return 'S'; } return 'F'; } }