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();
}
}
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.
Showing posts with label Uva es. Show all posts
Showing posts with label Uva es. Show all posts
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;
}
}
Subscribe to:
Posts (Atom)