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];
}
}
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.
Sunday, June 12, 2016
Solucion al problema: 1079 - Sums in a Triangle I [http://coj.uci.cu] con Java
Para ver el link del problema Click aqui
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment