import java.util.BitSet; import java.util.PriorityQueue; import java.util.Scanner; /** * Solución al problema: 10002 - El inspector [http://acm.cs.buap.mx] * * @author BreakDark * @version 1.0b 17 feb. 2017 */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada int n; // numero de casos de prueba String p; // nombre de la poblacion String s; // informacion de los cultivos // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); n = Integer.parseInt(Lee.nextLine()); while (n-- > 0) { p = Lee.nextLine(); s = Lee.nextLine(); System.out.print(procesar(p, s)); } Lee.close(); } /** * Metodo que resueleve el problema * * @param p * Nombre de la poblacion * @param s * Informacion de los cultivos */ static String procesar(String p, String s) { String resp = ""; // contamos los cultivos int dim = 'z' - 'a' + 1, i; BitSet tipoCultivos = new BitSet(dim - 1); char letra; int d = 0; // desconocidos int[] cultivos = new int[dim]; for (i = 0; i < s.length(); i++) { letra = s.charAt(i); if (letra != '*') { tipoCultivos.set(letra - 'a'); cultivos[letra - 'a']++; } else d++; } resp += "POBLACION: " + p + "\n"; resp += "TIPOS DE CULTIVOS: " + tipoCultivos.cardinality() + "\n"; resp += "DESCONOCIDOS: " + d + "\n"; resp += "CANTIDADES:" + "\n"; // mostramos los conteos de los cultivos PriorityQueuecola = new PriorityQueue (); for (i = 0; i < dim; i++) { // adicionamos los valores a una cola de prioridad if (cultivos[i] > 0) cola.add(new CultivoValor((char) ('a' + i), cultivos[i])); // resp += (char) ('a' + i) + " - " + cultivos[i] + "\n"; } // mostramos la cola while (!cola.isEmpty()) { CultivoValor cv = cola.poll(); resp += cv.cult + " - " + cv.val + "\n"; } return resp; } } class CultivoValor implements Comparable { char cult; int val; public CultivoValor(char c, int v) { this.cult = c; this.val = v; } @Override public int compareTo(CultivoValor X) { if (X.val - this.val == 0) return this.cult - X.cult; return X.val - this.val; } }
Blog dedicado a la publicación de artículos, programas propios, traducciones de Roms de Nes, super Nes y mas, y alguno que otro artículo sobre tecnologia.
Saturday, February 25, 2017
Solución al problema: 10002 - El inspector [http://acm.cs.buap.mx] con Java
Para ver el link del problema Click aqui
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment