rendered paste bodyimport java.io.BufferedReader;import java.io.FileNotFoundException;import java.io.FileReader;public class Main { static int primerValor(String lineaLeida) { int contador = 0; int resultado = 0; boolean termine = false; while (contador < lineaLeida.length() && ! termine) { if (lineaLeida.charAt(contador) >= '0' && lineaLeida.charAt(contador) <= '9') { resultado = resultado*10 + lineaLeida.charAt(contador) - 48; } else if (resultado != 0) { //significa que lei un espacio, y que tengo que terminar termine = true; } contador++; } return resultado; } static int segundoValor(String lineaLeida) { int contador = 0; int resultado = 0; boolean llegueHastaElEspacio = false; boolean yaPasePorElPrimerNumero = false; //primero leo hasta leer el primer numero while (contador < lineaLeida.length() && ! yaPasePorElPrimerNumero) { if (lineaLeida.charAt(contador) >= '0' && lineaLeida.charAt(contador) <= '9') { yaPasePorElPrimerNumero = true; } contador++; } //ahora leo hasta encontrar espacios while (contador < lineaLeida.length() && !llegueHastaElEspacio) { if (!(lineaLeida.charAt(contador) >= '0' && lineaLeida.charAt(contador) <= '9')) { llegueHastaElEspacio = true; } contador++; } //ahora leo el segundo numero while (contador < lineaLeida.length()) { if (lineaLeida.charAt(contador) >= '0' && lineaLeida.charAt(contador) <= '9') { resultado = resultado*10 + lineaLeida.charAt(contador) - 48; } contador++; } return resultado; } static void enemySort(Tipito[] todasLasPersonas) { int maximosEnemigos = 0; int contador = 0; while (contador < todasLasPersonas.length) { maximosEnemigos = maximo(todasLasPersonas, contador); if (maximosEnemigos != 0) { arraySwap(todasLasPersonas, maximosEnemigos, contador); } contador++; } } static int maximo(Tipito[] todasLasPersonas, int desde) { int resultado = 0; int contador = desde; while (contador < todasLasPersonas.length) { if (todasLasPersonas[contador].cantEnemigos > resultado) { resultado = contador; } contador++; } return resultado; } static void arraySwap(Tipito[] todasLasPersonas, int maximo, int actual) { Tipito temporal = new Tipito(); temporal = todasLasPersonas[maximo]; todasLasPersonas[maximo] = todasLasPersonas[actual]; todasLasPersonas[actual] = temporal; } static int resolverEjercicio2(Tipito[] todasLasPersonas) { int personaActual = 0; int resultado = 0; while (personaActual < todasLasPersonas.length ) { if (todasLasPersonas[personaActual].cantEnemigos == 0) { resultado++; } else { int contador = personaActual; while (contador < todasLasPersonas.length) { todasLasPersonas[contador].setPelea(personaActual, false); contador++; } System.out.println("*************************************************"); System.out.println("En la pasada: " + personaActual + " tengo la matriz:"); mostrarMatriz(todasLasPersonas); } personaActual++; } return resultado; } static void mostrarMatriz(Tipito[] todasLasPersonas) { //muetro la matriz por pantalla int contador = 0; int quePersona = 0; while (quePersona < todasLasPersonas.length) { while (contador < todasLasPersonas.length) { System.out.print(todasLasPersonas[quePersona].peleados[contador] + " "); contador++; } System.out.println(""); contador = 0; quePersona++; } System.out.println("IMPRIMO LA CANTIDAD DE ENEMIGOS DE CADA LINEA"); contador = 0; while (contador < todasLasPersonas.length) { System.out.println(todasLasPersonas[contador].cantEnemigos); contador++; } } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int contador = 0; int cantPersonas = 0; int cantPeleados = 0; int peleado1 = 0; int peleado2 = 0; String lineaLeida = new String(); FileReader fr; try { fr = new FileReader("Ej1In.txt"); BufferedReader in = new BufferedReader(fr); lineaLeida = in.readLine(); cantPersonas = primerValor(lineaLeida); cantPeleados = segundoValor(lineaLeida); //inicializo la "matriz" Tipito[] todasLasPersonas = new Tipito[cantPersonas]; while (contador < cantPersonas) { todasLasPersonas[contador] = new Tipito(contador, cantPersonas); contador++; } contador = 0; while (contador < cantPeleados) { lineaLeida = in.readLine(); peleado1 = primerValor(lineaLeida); peleado2 = segundoValor(lineaLeida); todasLasPersonas[peleado1-1].setPelea(peleado2-1, true); todasLasPersonas[peleado2-1].setPelea(peleado1-1,true); contador++; } System.out.println("Muestro la pantalla leida en el archivo"); mostrarMatriz(todasLasPersonas); //la ordeno por cantidad de enemigos enemySort(todasLasPersonas); System.out.println("Como maximo se pueden invitar a: " + resolverEjercicio2(todasLasPersonas) + " personas"); } catch (Exception e) { // TODO Auto-generated catch block System.out.println("Salio por la exceptio e: " +e); e.printStackTrace(); } System.out.println("Termine el programa"); } }