import java.util.Scanner;
/**
* p2281 - Color Me Less [http://livearchive.onlinejudge.org]
*
* @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
short R, G, B; // para los colores que se van a leer
short[][] vec = new short[16][3]; // para guardar los Colores
short i; // para los bucles
int min; // para guardar la distancia minima
int[] vecDistancias = new int[16]; // vector de distancias
// AQUI INICIA EL PROGRAMA
Lee = new Scanner(System.in);
// se lee los 16 primeros colores
for(i = 0; i < 16; i++){
vec[i][0] = Lee.nextShort();
vec[i][1] = Lee.nextShort();
vec[i][2] = Lee.nextShort();
}
/* se lee los demas colores, hasta que los colores sean R=G=B-1 */
R = Lee.nextShort();
G = Lee.nextShort();
B = Lee.nextShort();
while((R != -1) && (G != -1) && (B != -1)){
// aqui se procesan los datos
// buscamos su color mas proximo
min = 195075;// 195075=3*255*255;
for(i = 0; i < 16; i++){
vecDistancias[i] = (R - vec[i][0]) * (R - vec[i][0]) + (G - vec[i][1]) * (G - vec[i][1]) + (B - vec[i][2]) * (B - vec[i][2]);
if(vecDistancias[i] < min)
min = vecDistancias[i];
}
System.out.print("(" + R + "," + G + "," + B + ") maps to ");
// buscamos donde esta el color de menor distancia y lo
// mostramos
for(i = 0; i < 16; i++)
if(vecDistancias[i] == min){
System.out.println("(" + vec[i][0] + "," + vec[i][1] + "," + vec[i][2] + ")");
break;
}
// System.out.println();
R = Lee.nextShort();
G = Lee.nextShort();
B = Lee.nextShort();
}
//
// System.out.println("\nFIN DEL PROGRAMA!!! - Todos los datos han sido procesados sin problemas");
//
}
}
|
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.
Tuesday, August 02, 2011
Solución al problema 2281 de la ICPC-ACM con Java
2281 - Color Me Less
Etiquetas:
ACM ICPC
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment