Rezultati

Up. imeNalogaJezikRezultatČas oddaje
domaco-2018 Prehitevanje Java 0/100Prekoračen čas (TLE) 04. okt '18 @ 17:16

Test Točke Porabljen spomin Porabljen čas Status
#1 16/16 40,340 MiB 0,000 s OK
#2 16/16 46,797 MiB 0,000 s OK
#3 17/17 39,793 MiB 0,000 s OK
#4 0/17 180,582 MiB 6,684 s Prekoračen čas
#5 0/17 191,352 MiB 6,604 s Prekoračen čas
#6 17/17 40,234 MiB 0,000 s OK

Ocenjevani program (naloga.java):
//package test;
import java.util.*;

public class naloga {
	
	public static void main(String[] args) {
		
		
		Scanner sc = new Scanner(System.in);
		
		int stVozil = sc.nextInt();
		
		String[] tekmovalci = new String[stVozil];
		
		for(int i = 0; i < stVozil; i++) {
			tekmovalci[i] = sc.next();
		}
		
		int stPorocanj = sc.nextInt();
		String[][] zamenjave = new String[stPorocanj][2];

		
		for(int i = 0; i < stPorocanj; i++) {
			for(int j = 0; j < 2; j++) {
				zamenjave[i][j] = sc.next();
			}
		}
		
		//prehiti zaostane ostane
		for(int i =0; i < stPorocanj; i++) {
			int indeksPrvega = 0;
			int indeksDrugega = 0;
			
			for(int j = 0; j < stVozil; j++) {
				if(tekmovalci[j].equals(zamenjave[i][0])) {
					indeksPrvega = j;
				}
				if(tekmovalci[j].equals(zamenjave[i][1])) {
					indeksDrugega = j;
				}
			}
			
			if(indeksPrvega < indeksDrugega) {
				
				String[] noviVrstniRed = new String[stVozil];
				
				int j;
				for(j = 0; j < indeksPrvega; j++) {
					noviVrstniRed[j] = tekmovalci[j];
				}
				
				for(; j < indeksDrugega-1; j++) {
					noviVrstniRed[j] = tekmovalci[j+1];
				}
			
				noviVrstniRed[j] = tekmovalci[indeksPrvega];
				j++;
				
				for(; j< stVozil; j++) {
					noviVrstniRed[j] = tekmovalci[j];
				}
				tekmovalci = noviVrstniRed;

			}
			//bil za
			else {
				
				int noviPrviIndeks = indeksDrugega;
				int noviDrugiIndeks = indeksDrugega+1;
				//zmanjšam vse indekse dol od tega
				String[] noviVrstniRed = new String[stVozil];
				int j;
				for(j = 0; j < noviPrviIndeks; j++) {
					noviVrstniRed[j] = tekmovalci[j];
				}
				noviVrstniRed[j] = tekmovalci[indeksPrvega];
				j++;
				noviVrstniRed[j] =tekmovalci[indeksDrugega];
				j++;
				
				//izpusti tam kjer je bil indeksPrvega
				for(; j <= indeksPrvega; j++) {
					noviVrstniRed[j] = tekmovalci[j-1];
					
				}
				
				for(int n = indeksPrvega+1; n< stVozil; n++) {
					noviVrstniRed[n] = tekmovalci[n];
				}
				
				
				tekmovalci = noviVrstniRed;
				
			}
		}
		for(int i = 0; i < stVozil; i++) {
			System.out.println(tekmovalci[i]);
		}
		
	} 

}