Saturday, October 15, 2011

Solución a G. Prediction Contest [http://acm.timus.ru]

Solución a G. Prediction Contest [http://acm.timus.ru]
El enunciado esta en el siguiente link enunciado

import java.util.Scanner;

/**
 * G. Prediction Contest [http://acm.timus.ru]
 * 
 * @author BreakDark
 * @version 1.0 beta
 */
// ACEPTADO!!! xD
public class Main {
 public static void main(String[] args) {
  Scanner Lee, LeerLinea;
  byte n;
  int nk;
  String[] ganadores = new String[12];
  int i, j;
  int sum; // monto total a pagar
  String universidad;
  byte premio;
  int[] sumParcial;
  int sumMayor;

  // AQUI INICIA EL PROGRAMA
  Lee = new Scanner(System.in);
  while (Lee.hasNextLine()) {
   sumMayor = 0;
   for (i = 0; i < 12; i++)
    ganadores[i] = Lee.nextLine();
   n = (new Scanner(Lee.nextLine()).nextByte());
   sumParcial = new int[n];
   for (j = 0; j < n; j++) {
    nk = (new Scanner(Lee.nextLine()).nextInt());
    while (nk > 0) {
     LeerLinea = new Scanner(Lee.nextLine());
     universidad = LeerLinea.next();
     LeerLinea.next();
     switch (LeerLinea.next().charAt(0)) {
     case 'g':
      premio = 4;
      break;
     case 's':
      premio = 8;
      break;
     default:
      premio = 12;
      break;
     }
     // aqui se hace el proceso
     for (i = premio - 4; i < premio; i++) {
      if (ganadores[i].contentEquals(universidad)
        || universidad.contentEquals(ganadores[i]))
       sumParcial[j]++;
     }
     nk--;
    }
    if (sumParcial[j] > sumMayor)
     sumMayor = sumParcial[j];
   }
   // sumamos 5 por cada uno que logro el maximo
   sum = 0;
   for (i = 0; i < n; i++) {
    if (sumParcial[i] == sumMayor)
     sum += 5;
   }
   System.out.println(sum);
  }
 }
}

No comments: