Solução: Problema do baile de casais (Cátia Souza)

From AdonaiMedrado.Pro.Br
Revision as of 13:50, 20 May 2009 by 200.17.147.2 (Talk)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
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';
 
	}
 
}