Friday, October 21, 2011

Solución a 2052 - Number Steps [ACM - ICPC]

Solución a 2052 - Number Steps [ACM - ICPC]
El enunciado esta en el siguiente link enunciado

import java.util.Scanner;

/**
 * 2052 - Number Steps [ACM - ICPC]
 * 
 * @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
  int N; // el numero de casos de prueba
  short x, y; // pra las coordenadas
  short[][] mat; // matriz para generar los numeros

  // AQUI INICIA EL PROGRAMA
  Lee = new Scanner(System.in);
  mat = generarMatriz();
  N = Lee.nextInt();
  while(N > 0){
   x = Lee.nextShort();
   y = Lee.nextShort();
   if(x == 0 && y == 0)
    System.out.println("0");
   else{
    if(mat[y][x] > 0)
     System.out.println(mat[y][x]);
    else
     System.out.println("No Number");
   }
   N--;
  }
 }
 /** Funcion que genera la matriz para que luego sea evaluada por el programa */
 private static short[][] generarMatriz() {
  short[][] r = new short[5002][5002];
  short c = 1; // valor acumulable
  boolean sw = true;
  for(short i = 1; i < 5001; i++){
   if(sw){
    r[i][i] = c++;
    r[i - 1][i + 1] = c++;
   }
   else{
    r[i - 1][i + 1] = c++;
    r[i][i] = c++;
   }
   sw = !sw;
  }
  return r;
 }
}

No comments: