Rezultati

Up. imeNalogaJezikRezultatČas oddaje
DMT2018 Zaletavanje Java 100/100OK 19. apr '18 @ 19:40

Test Točke Porabljen spomin Porabljen čas Status
#1 14/14 34,703 MiB 0,000 s OK
#2 14/14 28,074 MiB 0,000 s OK
#3 14/14 32,797 MiB 0,000 s OK
#4 14/14 41,617 MiB 0,000 s OK
#5 14/14 34,020 MiB 0,000 s OK
#6 15/15 33,945 MiB 0,000 s OK
#7 15/15 38,570 MiB 0,006 s OK

Ocenjevani program (Zaletavanje.java):
import java.util.*;



public class Zaletavanje {
	public static void main (String[] args) {
	Scanner sc = new Scanner(System.in);

	int steviloAvtov = sc.nextInt();
	int sirina = sc.nextInt();
	int visina = sc.nextInt();

	int[][] tabela = new int[steviloAvtov][3];
	
	for (int i = 0; i < steviloAvtov; i++){
	String crka = sc.next();
	if (crka.equals("G")){
		tabela[i][0] = 1;
	}else{
		tabela[i][0] = 2;		
	}
	tabela[i][1] = sc.nextInt();
	tabela[i][2] = sc.nextInt();

	}


		int min = 1000000000;
		boolean sw = false;
		int razdalja;

	int koncani = 0;
	while (koncani != steviloAvtov){


		min = 1000000000;
		sw = false;
		

		for(int s = 0; s < steviloAvtov; s++ ){
			for (int k = s + 1; k < steviloAvtov; k++){
				if (tabela[s][1] != tabela[k][1] && tabela[s][1] + tabela[s][2] == tabela[k][1] + tabela[k][2] && ((tabela[s][0] == 1 && tabela[k][0] == 2) || (tabela[s][0] == 2 && tabela[k][0] == 1))){
					razdalja = tabela[s][1] - tabela[k][1];
					if (razdalja < 0){
						razdalja = -1 * razdalja;
					}
					if (razdalja < min){
						min = razdalja;
						sw = true;				
					}
				}

			}
		}
		

		if (sw){
		for (int j = 0; j < steviloAvtov; j++){
			if (tabela[j][1] >= sirina && tabela[j][0] == 2){
				tabela[j][1] = sirina;
				tabela[j][0] = 0;
				koncani ++;
			}
			if (tabela[j][2] >= visina && tabela[j][0] == 1){
				tabela[j][2] = visina;
				tabela[j][0] = 0;
				koncani++;
			}
			if (tabela[j][0] == 1){
				tabela[j][2] += min;
			}
			if (tabela[j][0] == 2){
				tabela[j][1] += min;
			}
		
			
		}
		//System.out.print(tabela[2][1]);
		//System.out.println("      "+tabela[2][2]);
		
		

		
		for(int s = 0; s < steviloAvtov; s++ ){
			for (int k = s + 1; k < steviloAvtov; k++){
				if (s != k && tabela[s][1] == tabela[k][1] && tabela[s][2] == tabela[k][2] && ((tabela[k][0] == 1 || tabela[k][0] == 2) &&(tabela[s][0] == 1 || tabela[s][0] == 2))){
					//System.out.print("HHHHHHh");
					//if (tabela[s][0] == 1){
					//	tabela[s][0] = 2;						
					//}else if (tabela[s][0] == 2){
					//	tabela[s][0] = 1;
					//}
					tabela[s][0] = 3 - tabela[s][0];
					//System.out.println(s);
					//System.out.println(k);
					tabela[k][0] = 3 - tabela[k][0];
					
					//if (tabela[k][0] == 1){
					//	tabela[k][0] = 2;						
					//}else if (tabela[k][0] == 2){
					//	tabela[k][0] = 1;
					//}
									
				}
			}
		}	

		}else{
		koncani = steviloAvtov;
	}

	}

	for (int i = 0; i < steviloAvtov; i++){
		if (tabela[i][0] == 2){
			tabela[i][1] = sirina;
		}
		if (tabela[i][0] == 1){
			tabela[i][2] = visina;
		}
}

	for (int t = 0; t < steviloAvtov; t++){
		System.out.print(tabela[t][1]);
		System.out.print(" ");
		System.out.print(tabela[t][2]);
		System.out.println();
	}
	



}
}