Archivos diarios: marzo 4, 2013

Clase 2 Marzo 2013

Coloco las paginas que les mencione el la clase pasada:

http://uhunt.felix-halim.net/

http://uva.onlinejudge.org/index.php

Deben crear su cuenta:, para poder enviar problemas

Otras paginas donde puede practicar es en topcoder
http://www.topcoder.com/tc
Y para ver reseñas de los problemas que se han puesto en sus concusos revisen esta liga:
http://apps.topcoder.com/wiki/display/tc/Algorithm+Problem+Set+Analysis
También tienen tutoriales.
http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=alg_index

Esta es la lista de problemas de esta semana:

http://uva.onlinejudge.org/external/121/12149.html
(formula , puedes usar una formula y un for).
La lectura seria algo como esto:

main( ){

    while( scanf(“%d”, &n) ¡= EOF && n ¡= 0 ){
     …..
     }
     return 0;

    }

ya que dice que termina cuando la línea contenga un 0.

http://uva.onlinejudge.org/external/121/12157.html voy a poner como se resuelve este en java para que los que usen Java no tengan problemas de enviar sus código:


import java.util.Arrays;
import java.util.Scanner;

public class Main {
	
	public final static int COST_PER_COMPANY[] = {10,15};
	public final static int TIME_PER_COMPANY[] = {30,60};
	
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		for(int ncases = scan.nextInt(), cases = 1 ; cases <= ncases ; cases++ ){
			int cost[] = new int[2];
			Arrays.fill(cost, 0);  // esto es lo mismo que el memset en C o C++, solo que hay que hacer
								   // por cada dimencion de nuestro arreglo.
			int numCalls = scan.nextInt();
			for( int x = 0; x < numCalls ; x++ ){
				int callDuration = scan.nextInt();
				for( int company = 0 ; company < 2; company++ ){
					cost[ company ] += ( (callDuration / TIME_PER_COMPANY[ company ] )+ 1) * COST_PER_COMPANY[company];
				}
			}
			System.out.printf("Case %d: ",  cases);
			if( cost[ 0 ] == cost[ 1 ]){
				System.out.printf("Mile Juice %d\n", cost[ 0 ] );
			}else{
				if( cost[ 0 ] < cost[ 1 ])
					System.out.printf("Mile %d\n", cost[ 0 ] );
				else
					System.out.printf("Juice %d\n", cost[ 1 ] );
			}
		} 
	}
}


Como pueden ver, no agrego el pakage, y la clase se llama Main, esto es muy importante, en la uva lo que envien en codigo Java lo guardara en un Main.java y lo compilara, si no tiene la clases el nombre de Main les mandara un compile error:
Main.java:5: class P12157 is public, should be declared in a file named P12157.java
public class P12157 {
^
1 error

Entonces abusados con esto.

les dejo los demas problema:

http://uva.onlinejudge.org/external/123/12372.html
http://uva.onlinejudge.org/external/123/12342.html
http://uva.onlinejudge.org/external/100/10055.html
http://uva.onlinejudge.org/external/100/10071.html
http://uva.onlinejudge.org/external/100/10038.html
http://uva.onlinejudge.org/external/100/10035.html
http://uva.onlinejudge.org/external/101/10189.html
http://uva.onlinejudge.org/external/101/10110.html
http://uva.onlinejudge.org/external/101/10127.html
http://uva.onlinejudge.org/external/122/12289.html
http://uva.onlinejudge.org/external/122/12250.html
http://uva.onlinejudge.org/external/122/12279.html
http://uva.onlinejudge.org/external/122/12243.html