import java.util.BitSet; import java.util.Scanner; /** * Solución a 10783 - Odd Sum [https://uva.onlinejudge.org/] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 24 nov. de 2017 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee = new Scanner(System.in); int t, a, b, i, j, sum; BitSet impares = new BitSet(101); for (i = 1; i <= 100; i += 2) impares.set(i); // AQUI INICIA EL PROGRAMA t = Lee.nextInt(); for (i = 1; i <= t; i++) { a = Lee.nextInt(); b = Lee.nextInt(); sum = 0; for (j = a; j <= b; j++) { if (impares.get(j)) sum += j; } System.out.println("Case " + i + ": " + sum); } Lee.close(); } }
BreakDark
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.
Monday, January 22, 2018
Solución al problema: 10783 - Odd Sum con Java
Para ver el link del problema Click aqui
Solución al problema: 488 - Triangle Wave con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * 488 - Triangle Wave [http://uva.onlinejudge.org] * * @author BreakDark * @version 2.0 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada int numcasos; // para el numero de casos byte amplitud; // para la amplitud int frecuencia; // frecuencia int i; // para los bucles // vector de ondas String[] vec = {"", "1", "1\n22\n1", "1\n22\n333\n22\n1", "1\n22\n333\n4444\n333\n22\n1", "1\n22\n333\n4444\n55555\n4444\n333\n22\n1", "1\n22\n333\n4444\n55555\n666666\n55555\n4444\n333\n22\n1", "1\n22\n333\n4444\n55555\n666666\n7777777\n666666\n55555\n4444\n333\n22\n1", "1\n22\n333\n4444\n55555\n666666\n7777777\n88888888\n7777777\n666666\n55555\n4444\n333\n22\n1", "1\n22\n333\n4444\n55555\n666666\n7777777\n88888888\n999999999\n88888888\n7777777\n666666\n55555\n4444\n333\n22\n1"}; // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); numcasos = Lee.nextInt(); while(numcasos-- > 0){ amplitud = Lee.nextByte(); frecuencia = Lee.nextInt(); for(i = 0; i < frecuencia; i++){ System.out.println(vec[amplitud]); if(i < frecuencia - 1 || numcasos > 0) System.out.println(); } } } }
Solución al problema: 106 - Fermat vs Pythagoras con Java
Para ver el link del problema Click aqui
import java.util.BitSet; import java.util.Scanner; /** * 106 - Fermat vs. Pythagoras [http://uva.onlinejudge.org] * * @author BreakDark * @version 3.0 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // Para leer los datos de entrada int N; // para el N a leer // AQUI INICIA EL PROGRAMA!!! Lee = new Scanner(System.in); while(Lee.hasNext()){ N = Lee.nextInt(); calcula(N); } } /** * Procedimiento que realiza todo el trabajo * * @param N * el numero a procesar */ private static void calcula(int N) { int cont = 0; int numUsados = 0; int r, s, i, x, y, z; BitSet numeros = new BitSet(N + 1); for(r = 2; r * r <= N; r++) for(s = 1; s < r && r * r + s * s <= N; s++){ x = r * r - s * s; y = 2 * r * s; z = r * r + s * s; if(mcd(x, y) == 1){ cont++; for(i = 1; z * i <= N; i++){ if(!numeros.get(x * i)){ numUsados++; numeros.set(x * i); } // para y if(!numeros.get(y * i)){ numUsados++; numeros.set(y * i); } // para z if(!numeros.get(z * i)){ numUsados++; numeros.set(z * i); } } } } System.out.println(cont + " " + (N - numUsados)); } /** * Funcion que encuentra el MCD de dos enteros basado en el slgoritmo de * euclides * * @param a * entero a evaluar el MCD * @param b * entero a evaluar el MCD * @return el MCD de a y b */ private static int mcd(int a, int b) { int r; if(b > a){ r = a; a = b; b = r; } r = b; while(b > 0){ r = a % b; a = b; b = r; } return a; } }
Saturday, February 25, 2017
Solución al problema: 10004 - Islas [http://acm.cs.buap.mx] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; import java.util.Stack; /** * Solución al problema: 10004 - Islas [http://acm.cs.buap.mx] * * @author BreakDark (Jhonny Monrroy) * @version 1.0b 18 feb. 2017 */ // ACETTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada int n; // dimension del mapa char[][] mapa; int i; // para los bucles // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); do { n = Lee.nextInt(); if (n > 0) { mapa = new char[n][n]; for (i = 0; i < n; i++) { mapa[i] = Lee.next().toCharArray(); } System.out.println(obtenerSolucion(n, mapa)); } } while (Lee.hasNext() && n != 0); Lee.close(); } /** * Metodo que obtiene la solucion del problema * * @param n * Dimension del mapa * @param mapa * Matriz que representa el mapa * @return Un String que representa la solucion */ public static String obtenerSolucion(int n, char[][] mapa) { int[][] mp = new int[n][n]; // mapa de numeros // int[] dimIslas = new int[n * n]; // dimension de las islas int numIsla = 0; int i, j; // para los bucles // recorremos la matriz del mapa for (i = 0; i < n; i++) { for (j = 0; j < n; j++) { if (mapa[i][j] != 'm') { // pintamos la isla if (mp[i][j] == 0) { // si no esta pintado ya Stackpila = new Stack (); pila.push(i); // introcucimos la primera coordenada pila.push(j); while (!pila.isEmpty()) { int ind_j = pila.pop(); int ind_i = pila.pop(); // System.out.println(ind_j + "," + ind_i); // buscamos los alrededores // coordenada NorOeste if (ind_i > 0 && ind_j > 0 && mapa[ind_i - 1][ind_j - 1] == 't' && mp[ind_i - 1][ind_j - 1] == 0) { pila.push(ind_i - 1); pila.push(ind_j - 1); } // coordenada Norte if (ind_i > 0 && mapa[ind_i - 1][ind_j] == 't' && mp[ind_i - 1][ind_j] == 0) { pila.push(ind_i - 1); pila.push(ind_j); } // coordenada NorEste if (ind_i > 0 && ind_j + 1 < n && mapa[ind_i - 1][ind_j + 1] == 't' && mp[ind_i - 1][ind_j + 1] == 0) { pila.push(ind_i - 1); pila.push(ind_j + 1); } // Oeste if (ind_j > 0 && mapa[ind_i][ind_j - 1] == 't' && mp[ind_i][ind_j - 1] == 0) { pila.push(ind_i); pila.push(ind_j - 1); } // coordenada Este if (ind_j + 1 < n && mapa[ind_i][ind_j + 1] == 't' && mp[ind_i][ind_j + 1] == 0) { pila.push(ind_i); pila.push(ind_j + 1); } // coordenada SurOeste if (ind_i + 1 < n && ind_j > 0 && mapa[ind_i + 1][ind_j - 1] == 't' && mp[ind_i + 1][ind_j - 1] == 0) { pila.push(ind_i + 1); pila.push(ind_j - 1); } // coordenada Sur if (ind_i + 1 < n && mapa[ind_i + 1][ind_j] == 't' && mp[ind_i + 1][ind_j] == 0) { pila.push(ind_i + 1); pila.push(ind_j); } // coordenada SurEste if (ind_i + 1 < n && ind_j + 1 < n && mapa[ind_i + 1][ind_j + 1] == 't' && mp[ind_i + 1][ind_j + 1] == 0) { pila.push(ind_i + 1); pila.push(ind_j + 1); } mp[ind_i][ind_j] = numIsla + 1; } numIsla++; } } } } // si no hay islas o solo hay una if (numIsla == 0) return "No hay islas"; if (numIsla == 1) return "Solo hay una isla"; // buscamos el menor y la mayor dimension int min = Integer.MAX_VALUE, max = Integer.MIN_VALUE; for (int isla = 1; isla <= numIsla; isla++) { int cont = 0; for (i = 0; i < n; i++) for (j = 0; j < n; j++) if (mp[i][j] > 0 && mp[i][j] == isla) cont++; if (cont > 0 && cont < min) min = cont; if (cont > max) max = cont; } return min + " " + max; } }
Solución al problema: 10003 - Burrito Amarrado [http://acm.cs.buap.mx] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solución al problema: 10003 - Burrito Amarrado [http://acm.cs.buap.mx] */ /** * @author BreakDark (Jhonny Monrroy) * @version 2.0 b 18 feb. 2017 */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para los datos de entrada int r, n; /// radio y numero de intentos // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); do { r = Lee.nextInt(); n = Lee.nextInt(); if (r != 0 && n != 0) System.out.println(obtenerSolucion(r, n)); } while (Lee.hasNext() && r != 0 && n != 0); Lee.close(); } /** * Metodo que obtiene la solucion del problema * * @param r * Radio del corral * @param n * Numero de intentos * @return Un String que representa la distancia del burrito al poste */ public static String obtenerSolucion(int r, int n) { double x = 0, y = 0; // coordenadas del burrito byte dir = 0; // 0=norte, 1=este, 2=sur, 3=oeste while (n-- > 0) { switch (dir) { case 0: // norte y = (y + Math.sqrt(r * r - x * x)) / 2; break; case 1: // este x = (x + Math.sqrt(r * r - y * y)) / 2; break; case 2: // sur y = (y - Math.sqrt(r * r - x * x)) / 2; break; default: // oeste x = (x - Math.sqrt(r * r - y * y)) / 2; dir = -1; // para volver a empezar desde el principio break; } dir++; } // mostramos el resultado return String.format("%.2f", Math.sqrt(x * x + y * y)).replace(',', '.'); } }
Solución al problema: 10002 - El inspector [http://acm.cs.buap.mx] con Java
Para ver el link del problema Click aqui
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; } }
Thursday, September 15, 2016
Solucion al Problema: 1354 – IP Checking [http://lightoj.com/] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al Problema: 1354 – IP Checking [http://lightoj.com/] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 14 ago. 2016 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada int T; // numero de casos de prueba String ipDecimal, ipBinario; // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); T = Lee.nextInt(); for (int i = 1; i <= T; i++) { ipDecimal = Lee.next(); ipBinario = Lee.next(); String aux = Short.parseShort(ipBinario.substring(0, 8), 2) + "."; aux += Short.parseShort(ipBinario.substring(9, 17), 2) + "."; aux += Short.parseShort(ipBinario.substring(18, 26), 2) + "."; aux += Short.parseShort(ipBinario.substring(27), 2); System.out.println("Case " + i + ": " + (ipDecimal.equals(aux) ? "Yes" : "No")); } Lee.close(); } }
Solucion al Problema: 1293 - Document Analyzer [http://lightoj.com/] con C++
Para ver el link del problema Click aqui
//============================================================================ // Name : 1293.cpp // Author : BreakDark (Jhonny Monrroy) basado en la solucion publicada en [http://www.cnblogs.com/njczy2010/p/4337078.html] // Version : 3.0 16/09/2016 // Copyright : (Solucion obtenida de [http://www.cnblogs.com/njczy2010/p/4337078.html]) // Description : Solucion al Problema: 1293 - Document Analyzer [http://lightoj.com/] //============================================================================ // Accepted!!! xD #include <iostream> #include <stdio.h> #include <string> #include <cstring> #include <sstream> #include <map> using namespace std; int T; // para el numero de casos de prueba int t; // indice /** * Metodo procesarPalabra: reemplaza los caracteres que no son letras por * espacios * * @author BreakDark (Jhonny Monrroy) * @version 1.0 20 ago. 2016 * @param palabra * Cadena a procesar * @return Retorna la cadena ya proceesda */ string procesarPalabra(string palabra) { string nuevaLinea = ""; char letra; for (int i = 0; i < palabra.length(); i++) { letra = palabra[i]; if (letra >= 'a' && letra <= 'z') { nuevaLinea += letra; } else { nuevaLinea += ' '; } } return nuevaLinea; } /** * Metodo obtenerRangoMenor: Metodo que busca el rango menor para este * problema * * @author BreakDark (Jhonny Monrroy) * @version 1.0 20 ago. 2016 * @param vecPal * Vector de palabras * @param numPal * Numero de palabras del vector * @param hashPal * HashMap de palabras no iguales */ void obtenerRangoMenor(string vecPal[], int numPal, map<string, int> hashPal) { int p = -1; int q = numPal + 1; int posible_p, posible_q; int cont = 0; // contador de palabras encontradas posible_p = 0; posible_q = 0; while (posible_p < numPal) { for (; posible_q < numPal; posible_q++) { hashPal[vecPal[posible_q]]++; if (hashPal[vecPal[posible_q]] == 1) cont++; if (cont == hashPal.size()) { for (; posible_p <= posible_q; posible_p++) { if (hashPal[vecPal[posible_p]] == 1) { if (posible_q - posible_p < q - p) { p = posible_p; q = posible_q; } else if (posible_q - posible_p == q - p) { if (posible_p < p) { p = posible_p; q = posible_q; } } hashPal[vecPal[posible_p]]--; cont--; posible_p++; posible_q++; break; } hashPal[vecPal[posible_p]]--; } break; } } if (posible_q == numPal) break; } printf("Case %d: %d %d\n", t, (p + 1), (q + 1)); } int main() { //int T; // para el numero de casos de prueba string palabra; // para cada palabra char linea[102]; // para la linea que se lea string linea_s; string palabras[50000]; // vector de palabras int numPal; // para el numero de palabras a almacenar map<string, int> hashPalabras; // conjunto de palabras no repetidas // AQUI INICIA EL PROGRAMA scanf("%d", &T); for (t = 1; t <= T; t++) { numPal = 0; // vaciamos el vector hashPalabras.clear(); while (scanf("%s", linea) != EOF && strcmp(linea, "END") != 0) { char nuevaLinea[102] = ""; char letra; for (int i = 0; i < strlen(linea); i++) { letra = linea[i]; if (letra >= 'a' && letra <= 'z') { nuevaLinea[strlen(nuevaLinea)] = letra; } else { strcat(nuevaLinea, " "); } } strcpy(linea, nuevaLinea); //cout<<linea<<endl; char *vecPalabras; vecPalabras = strtok(linea, " "); while (vecPalabras != NULL) { //printf("%s\n", vecPalabras); palabras[numPal] = vecPalabras; stringstream ss; ss << palabras[numPal]; ss >> linea_s; hashPalabras[linea_s] = 0; // seleccionamos palabras distintas numPal++; vecPalabras = strtok(NULL, " "); } } obtenerRangoMenor(palabras, numPal, hashPalabras); } return 0; }
Solucion al Problema: 1109 - False Ordering [http://lightoj.com/] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al Problema: 1109 - False Ordering [http://lightoj.com/] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 13 ago. 2016 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada int t; // numero de casos int n; // numero a evaluar int vecDiv[]; // vector para almacenar cantidad de veces que es divisor // cada indice int vecNum[]; // numero de los valores que seran ordenados int limite = 1001; // para el limite de las operaciones // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); // generamos el vector de num de divisores vecDiv = new int[limite + 1]; vecNum = new int[limite + 1]; for (int i = 1; i <= limite; i++) { for (int j = i; j <= limite; j += i) { vecDiv[j]++; } vecNum[i] = i; } // ordenamos los valores por el metodo burbuja adecauado al problema for (int i = 1; i < limite - 1; i++) { for (int j = i + 1; j < limite; j++) { int x = vecNum[j]; int y = vecNum[i]; if (vecDiv[x] < vecDiv[y] || (vecDiv[x] == vecDiv[y] && x > y)) { int aux = vecNum[i]; vecNum[i] = vecNum[j]; vecNum[j] = aux; } } } // leemos los datos t = Lee.nextInt(); for (int i = 1; i <= t; i++) { n = Lee.nextInt(); System.out.println("Case " + i + ": " + vecNum[n]); } Lee.close(); } }
Solucion al Problema: 1072 – Calm Down [http://lightoj.com/] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al Problema: 1072 – Calm Down [http://lightoj.com/] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 14 ago. 2016 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada int T; // numero de casos de prueba double R; // para el radio int n; // numero re balas esperado double r; // radio buscado // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); T = Lee.nextInt(); for (int i = 1; i <= T; i++) { R = Double.parseDouble(Lee.next()); n = Lee.nextInt(); double angulo = 2 * Math.PI / n; double senoAngulo = Math.sin(angulo / 2); r = R * senoAngulo / (1 + senoAngulo); if (r == (int) r) { System.out.println(String.format("Case %d: %d", i, (int) r)); } else { System.out.println(String.format("Case %d: %.10f", i, r).replace(',', '.')); } } Lee.close(); } }
Solucion al Problema: 1043 - Triangle Partitioning [http://lightoj.com/] con java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al Problema: 1043 - Triangle Partitioning [http://lightoj.com/] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 08/10/2013 */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada byte T, caso; // para los casos de entrada double AB, AC, BC; // para los lados del triangulo double r; // para el radio de las areas double Area, Area1, Area2; // para las areas double SenoDeAlpha; // Seno de Alfa double h, h1, h2; // la altura del triangulo inicial double AD; // longitud superior del trapecio, y la longitud buscada // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); T = Lee.nextByte(); for (caso = 1; caso <= T; caso++) { // leemos la informacion AB = Lee.nextDouble(); AC = Lee.nextDouble(); BC = Lee.nextDouble(); r = Lee.nextDouble(); // obtenemos el area del traingulo Area = areaDelTriangulo(AB, AC, BC); h = 2 * Area / BC; Area2 = Area / (r + 1); Area1 = Area - Area2; // obtenemos el seno del angulo SenoDeAlpha = Area * 2 / (AB * BC); h2 = formulaDeSegundoGrado(BC, -(2 * Area2 + h * BC + 2 * Area1), 2 * Area2 * h); h1 = h - h2; AD = h1 / SenoDeAlpha; // mostramos el resultado System.out.println("Case " + caso + ": " + AD); } } /** * Obtiene uno de los resultados de la ecuacion de 2do grado ax2+bx+c * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 25/08/2013 * @param a * El coeficiente A de la ecuacion de 2do grado * @param b * El coeficiente B de la ecuacion de 2do grado * @param c * El coeficiente C de la ecuacion de 2do grado * @return uno de los valores de x a partir de la ecuacion ax2+bx+c */ private static double formulaDeSegundoGrado(double a, double b, double c) { double dis = b * b - 4 * a * c; // discriminante if (dis >= 0) return ((-b - Math.sqrt(dis)) / (2 * a)); else System.out.println("El resultado es un numero imaginario :("); return 0; } /** * obtiene el area de un triangulo a partir de sus lados * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 12/08/2013 * @param a * Longitud del lado a del triangulo * @param b * Longitud del lado b del triangulo * @param c * Longitud del lado c del triangulo * @return El area del triangulo de lados a, b, c */ private static double areaDelTriangulo(double a, double b, double c) { double s = (a + b + c) / 2; // semiperimetro return Math.sqrt(s * (s - a) * (s - b) * (s - c)); } }
Solución al problema 1001 - Opposite Task [http://www.lightoj.com] con java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * 1001 - Opposite Task [http://www.lightoj.com] * * @author BreakDark * @version 1.1 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada byte T; // para el numero de casos de prueba byte n; // para el numero de problemas byte a; // para la computadora 1 // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); T = Lee.nextByte(); while (T-- > 0) { n = Lee.nextByte(); if (n >= 10) { a = (byte) (n - 10); System.out.println(a + " " + (n - a)); } else System.out.println("0 " + n); } } }
Solucion al problema: 1000 - Greetings from LightOJ [www.lightoj.com] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * 1000 - Greetings from LightOJ [www.lightoj.com] * * @author BreakDark * @version 1.0 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer l0os datos de entrada byte T; // numero de casos byte caso; // para contar los casos byte a, b; // problemas en cada computadora // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); T = Lee.nextByte(); for (caso = 1; caso <= T; caso++) { a = Lee.nextByte(); b = Lee.nextByte(); System.out.println("Case " + caso + ": " + (a + b)); } } }
Sunday, June 12, 2016
Solucion al problema: 3056 - Automatic Checking Machine [http://coj.uci.cu] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al problema: 3056 - Automatic Checking Machine [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 20/11/2014 */ // Acepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; boolean[] c1, c2; int i; boolean nocompatibles = false; // aca inicia el programa Lee = new Scanner(System.in); c1 = new boolean[5]; c2 = new boolean[5]; while (Lee.hasNext()) { nocompatibles = false; for (i = 0; i < 5; i++) c1[i] = (Lee.nextInt() == 1); for (i = 0; i < 5; i++) c2[i] = (Lee.nextInt() == 1); // buscamos si son compatibles for (i = 0; i < 5; i++) if (c1[i] == c2[i]) { nocompatibles = true; break; } if (nocompatibles) { for (i = 0; i < 5; i++) if (c1[i] == c2[5 - 1 - i]) { nocompatibles = true; break; } } System.out.println((nocompatibles) ? "N" : "Y"); } } }
Solucion al problema: 1805 - A+B Complejo [http://coj.uci.cu] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al problema: 1805 - A+B Complejo [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 11 de jun. de 2016 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos long a, b; long suma; // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); a = Lee.nextInt(); b = Lee.nextInt(); suma = 2 * a + 2 * b; // 2a+2b = (a+b) + (a-b) + (b+a) + (b-a) System.out.println(suma); Lee.close(); } }
Solución al problema: 1666 - WERTYU [http://coj.uci.cu/] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * 1666 - WERTYU [http://coj.uci.cu/] * * @author BreakDark * @version 1.1 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; String cadena, salida; int i; // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); while (Lee.hasNextLine()) { cadena = Lee.nextLine(); salida = ""; for (i = 0; i < cadena.length(); i++) { switch (cadena.charAt(i)) { case 'W': salida += 'Q'; break; case 'S': salida += 'A'; break; case 'X': salida += 'Z'; break; case 'E': salida += 'W'; break; case 'D': salida += 'S'; break; case 'C': salida += 'X'; break; case 'R': salida += 'E'; break; case 'F': salida += 'D'; break; case 'V': salida += 'C'; break; case 'T': salida += 'R'; break; case 'G': salida += 'F'; break; case 'B': salida += 'V'; break; case 'Y': salida += 'T'; break; case 'H': salida += 'G'; break; case 'N': salida += 'B'; break; case 'U': salida += 'Y'; break; case 'J': salida += 'H'; break; case 'M': salida += 'N'; break; case 'I': salida += 'U'; break; case 'K': salida += 'J'; break; case ',': salida += 'M'; break; case 'O': salida += 'I'; break; case 'L': salida += 'K'; break; case '.': salida += ','; break; case 'P': salida += 'O'; break; case ';': salida += 'L'; break; case '/': salida += '.'; break; case '2': salida += '1'; break; case '3': salida += '2'; break; case '4': salida += '3'; break; case '5': salida += '4'; break; case '6': salida += '5'; break; case '7': salida += '8'; break; case '8': salida += '7'; break; case '9': salida += '8'; break; case '0': salida += '9'; break; case '-': salida += '0'; break; case '=': salida += '-'; break; case '[': salida += 'P'; break; case ']': salida += '['; break; case '\\': salida += ']'; break; case '\'': salida += ';'; break; case ' ': salida += ' '; break; } } System.out.println(salida); } } }
Solución al problema: 1663 - Error Correction [http://coj.uci.cu/] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * 1663 - Error Correction [http://coj.uci.cu/] * * @author BreakDark * @version 1.1 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; byte N; boolean[][] mat; byte i, j; byte sum; byte fil, col; // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); N = Lee.nextByte(); while (N > 0) { mat = new boolean[N][N]; fil = col = -1; for (i = 0; i < N; i++) for (j = 0; j < N; j++) mat[i][j] = (Lee.nextByte() == 1) ? true : false; if (cumpleParidad(mat)) System.out.println("OK"); else { // buscamos errores en filas for (i = 0; i < N; i++) { sum = 0; for (j = 0; j < N; j++) if (mat[i][j]) sum++; if ((sum & 1) == 1) { fil = i; break; } } if (fil > 0) { // buscamos errores en columnas for (j = 0; j < N; j++) { sum = 0; for (i = 0; i < N; i++) if (mat[i][j]) sum++; if ((sum & 1) == 1) { col = j; break; } } } // reparamos if (fil >= 0 && col >= 0) mat[fil][col] = !mat[fil][col]; if (cumpleParidad(mat)) System.out.println("Change bit (" + (fil + 1) + "," + (col + 1) + ")"); else System.out.println("Corrupt"); } N = Lee.nextByte(); } } /** Para comprobar si la matriz cumple con la paridad */ private static boolean cumpleParidad(boolean[][] mat) { byte i, j; byte sum; // buscamos filas for (i = 0; i < mat.length; i++) { sum = 0; for (j = 0; j < mat.length; j++) if (mat[i][j]) sum++; if ((sum & 1) == 1) return false; } // buscamos columnas for (j = 0; j < mat.length; j++) { sum = 0; for (i = 0; i < mat.length; i++) if (mat[i][j]) sum++; if ((sum & 1) == 1) return false; } return true; } }
Solución al problema: 1662 - Run-Length Encoding-Decoding [http://coj.uci.cu/] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * 1662 - Run-Length Encoding-Decoding [http://coj.uci.cu/] * * @author BreakDark * @version 1.0 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; byte T; byte caso; String cadena, salida; char letra; int i, j; String aux; // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); T = Lee.nextByte(); for (caso = 1; caso <= T; caso++) { System.out.print("Case " + caso + ": "); cadena = Lee.next(); salida = ""; letra = cadena.charAt(0); aux = ""; for (i = 1; i < cadena.length(); i++) { if (cadena.charAt(i) >= '0' && cadena.charAt(i) <= '9') aux += cadena.charAt(i); else { for (j = 0; j < Integer.parseInt(aux); j++) salida += letra; letra = cadena.charAt(i); aux = ""; } } for (j = 0; j < Integer.parseInt(aux); j++) salida += letra; System.out.println(salida); } } }
Solución al problema: 1655 - Xtreme Encription [http://coj.uci.cu/] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * 1655 - Xtreme Encription [http://coj.uci.cu/] * * @author BreakDark * @version 1.0 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; String texto, texto2; int i, j; // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); while (Lee.hasNext()) { texto = Lee.next(); texto2 = Lee.next(); i = j = 0; while (i < texto.length() && j < texto2.length()) { if (texto.charAt(i) == texto2.charAt(j)) i++; j++; } if (i == texto.length()) System.out.println("Yes"); else System.out.println("No"); } } }
Solucion al problema: 1495 - Increasing Order List [http://coj.uci.cu] con Java
Para ver el link del problema Click aqui
import java.util.Arrays; import java.util.Scanner; /** * Solucion al problema: 1495 - Increasing Order List [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 12 de jun. de 2016 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer datos int[] ni; // lista de enteros int n; // numero de enteros // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); n = Lee.nextInt(); ni = new int[n]; for (int i = 0; i < n; i++) { ni[i] = Lee.nextInt(); } Arrays.sort(ni); for (int i = 0; i < n; i++) { System.out.println(ni[i]); } Lee.close(); } }
Solucion al problema: 1494 - Hey don't Read!!! [http://coj.uci.cu] con Java
Para ver el link del problema Click aqui
/** * Solucion al problema: 1494 - Hey don't Read!!! [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 19/11/2014 */ // Accepted!!! xD public class Main { public static void main(String[] args) { System.out.println("I got my first solution!!!"); } }
Solucion al problema: 1312 - R2 [http://coj.uci.cu] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al problema: 1312 - R2 [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 19/11/2014 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada int r1, r2, s; // aqui inicia el programa Lee = new Scanner(System.in); r1 = Lee.nextInt(); s = Lee.nextInt(); r2 = (s << 1) - r1; System.out.println(r2); } }
Solucion al problema: 1156 - La Vida, El Universo y El Todo [http://coj.uci.cu] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al problema: 1156 - La Vida, El Universo y El Todo * [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 1 de jun. de 2016 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // Pasra leer los datos de entrada int i; // para los datos de entrada // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); while (Lee.hasNext()) { i = Lee.nextInt(); if (i == 42) { break; } System.out.println(i); } } }
Solucion al problema: 1102 - You Can Say 11 [http://coj.uci.cu] con java
Para ver el link del problema Click aqui
import java.math.BigInteger; import java.util.Scanner; /** * Solucion al problema: 1102 - You Can Say 11 [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 11 de jun. de 2016 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para ler datos BigInteger n; // el numero a evaluar BigInteger once = new BigInteger("11"); // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); n = new BigInteger(Lee.next()); while (!n.equals(BigInteger.ZERO)) { if (n.mod(once).equals(BigInteger.ZERO)) { System.out.println(n + " is a multiple of 11."); } else { System.out.println(n + " is not a multiple of 11."); } n = new BigInteger(Lee.next()); } Lee.close(); } }
Solución al problema: 1099 - Pythagorean Numbers [http://coj.uci.cu] con Java
Para ver el link del problema Click aqui
import java.util.Arrays; import java.util.Scanner; import java.util.StringTokenizer; /** * 1099 - Pythagorean Numbers [http://coj.uci.cu] * * @author BreakDark * @version 1.0 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada String linea; // para leer una linea StringTokenizer LeerLinea; short[] num = new short[3]; // para la trica phitagorica // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); // leemos los datos linea = Lee.nextLine(); while (!linea.equals("0")) { LeerLinea = new StringTokenizer(linea); num[0] = Short.parseShort(LeerLinea.nextToken()); num[1] = Short.parseShort(LeerLinea.nextToken()); num[2] = Short.parseShort(LeerLinea.nextToken()); Arrays.sort(num); // ordenamos // mostramos el resultado if (num[0] * num[0] + num[1] * num[1] == num[2] * num[2]) System.out.println("right"); else System.out.println("wrong"); linea = Lee.nextLine(); } } }
Solucion al problema: 1079 - Sums in a Triangle I [http://coj.uci.cu] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al problema: 1079 - Sums in a Triangle I [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 10 de jun. de 2016 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada int nt; // numero de casos de prueba int n; // tamanio de la matriz int[][] matriz; // matriz donde guardar los numeros del triangulo // AQUI INICIA EL PROGRAMA!!! Lee = new Scanner(System.in); nt = Lee.nextInt(); while (nt-- > 0) { n = Lee.nextInt(); matriz = new int[n][n]; for (int i = 0; i < n; i++) { for (int j = 0; j <= i; j++) { matriz[i][j] = Lee.nextInt(); } } System.out.println(obtenerSumaMasLarga(matriz, n)); } Lee.close(); } /** * Obtiene la suma mas larga que se puede obtener de un triangulo de enteros * desde la punta hasta una de sus ramas * * @param matriz * Matriz de enteros a procesar * @param n * El tamaño de la matriz de N x N, n debe ser mayor que 0 * @return Un entero con el resultado de la suma mas larga */ private static int obtenerSumaMasLarga(int[][] matriz, int n) { int i, j; // indices for (i = n - 2; i >= 0; i--) { for (j = 0; j <= i; j++) { matriz[i][j] = Math.max(matriz[i][j] + matriz[i + 1][j], matriz[i][j] + matriz[i + 1][j + 1]); } } return matriz[0][0]; } }
Solución al problema: 1049 - Sum [http://coj.uci.cu/] con Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * 1049 - Sum [http://coj.uci.cu/] * * @author BreakDark * @version 2.0 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para los datos de entrada int N; // el N a leer // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); while (Lee.hasNext()) { // leemos los datos N = Lee.nextShort(); // mostramos el resultado if (N > 0) System.out.println((N * (N + 1)) / 2); else { N = -N; N = ((N * (N + 1)) / 2); System.out.println(1 - N); } } } }
Solucion al problema: 1023 - Financial Management [http://coj.uci.cu] en java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * Solucion al problema: 1023 - Financial Management [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta 19/11/2014 */ // Accepted!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer lps datos de entrada double suma, promedio; // para sumar los valores y promedio int i; // para los bucles // aqui inicia el programa Lee = new Scanner(System.in); suma = 0; for (i = 1; i <= 12; i++) suma += Double.valueOf(Lee.next()); promedio = suma / 12; System.out.println(String.format("$%.2f", promedio).replace(',', '.')); } }
Solucion al problema: 1003 - General Election [http://coj.uci.cu] en Java
Para ver el link del problema Click aqui
import java.util.Scanner; /** * 1003 - General Election [http://coj.uci.cu] * * @author BreakDark * @version 1.0 beta */ // ACEPTADO!!! xD public class Main { public static void main(String[] args) { Scanner Lee; // para leer los datos de entrada byte T; // casos de prueba byte n, m; // candidatos y regiones int[] suma; // vector de la suma de los candidatos int sumaMax; // suma maxima int i, j; // indices // AQUI INICIA EL PROGRAMA Lee = new Scanner(System.in); // leemos los datos T = Lee.nextByte(); while (T-- > 0) { n = Lee.nextByte(); m = Lee.nextByte(); suma = new int[n]; // sumamos y calculamos sumaMax = Integer.MIN_VALUE; for (i = 0; i < m; i++) for (j = 0; j < n; j++) { suma[j] += Lee.nextInt(); if (suma[j] > sumaMax) sumaMax = suma[j]; } // mostramos al ganador for (i = 0; i < n; i++) if (suma[i] == sumaMax) { System.out.println(i + 1); break; } } } }
Solucion al problema: 1078 - Another Candies [http://coj.uci.cu] con C++
Para ver el link del problema Click aqui
#includeusing namespace std; /** * Solucion al problema: 1078 - Another Candies [http://coj.uci.cu] * * @author BreakDark (Jhonny Monrroy) * @version 1.0 beta_cpp 8 de jun. de 2016 */ // Accepted !!! xD int candies[100]; // dulces de cada ninio /** * Funcion que calcula si se pueden repartir los dulces equitativamente * entre los n ninios * * @param n * numero de ninios a calcular * @return true
si se puede repartir en partes iguales, *false
en caso contrario */ bool puedeDistribuirLosCaramelos(int n); int main(){ int t; // casos de entrada int n; // numero de ninios // AQUI INICIA EL PROGRAMA cin>>t; for(int it=1;it<=t;it++){ cin>>n; for(int ni=0;ni<n;ni++){ cin>>candies[ni]; } cout<<(puedeDistribuirLosCaramelos(n)?"YES":"NO")<<endl; } return 0; } bool puedeDistribuirLosCaramelos(int n){ int sum=0; for(int i=0;i<n;i++){ sum+=candies[i]; } return (sum%n)==0; }
Friday, September 26, 2014
Solución al problema 282A - Bit [http://www.codeforces.com] con C++
Para ver el link del problema Click aqui
Thursday, September 18, 2014
Solución al Problema: 96A - Football [http://codeforces.com] Con Java
Para ver el link del problema Click aqui
Solución al Problema: 1C - Ancient Berland Circus [http://codeforces.com] Con Java
Para ver el link del problema Click aqui
Solución al Problema: 1B - Spreadsheets [http://codeforces.com] Con Java
Para ver el link del problema Click aqui
Solucion al Problema: 122A - Lucky Division [http://codeforces.com] Con Java
Para ver el link del problema Click aqui
Solucion al Problema: 110A - Nearly Lucky Number [http://codeforces.com] en Java
Para ver el link del problema Click aqui
Monday, September 02, 2013
Practica 1 de INF 111 Periodo II/2013
Les dejo la practica de inf 111 para que se la descarguen
http://dl.dropboxusercontent.com/u/50967898/INF-111/Practica%20Inf-111_II-2013_%20ver%2020130902.pdf
http://dl.dropboxusercontent.com/u/50967898/INF-111/Practica%20Inf-111_II-2013_%20ver%2020130902.pdf
Subscribe to:
Posts (Atom)