CSES - Datatähti 2016 alku - Results
Submission details
Task:Kirjat
Sender:kalh
Submission time:2015-09-29 12:55:19 +0300
Language:Java
Status:COMPILE ERROR

Compiler report

input/Tehtava2.java:63: error: variable jononarvo is already defined in method mahdollisetRatkaisut(int,int[],int[])
			int jononarvo = jarjestetty.get(maara-i);
			    ^
1 error

Code

import java.util.*;

public class Tehtava2 {

	private static IO io;
	
	public static void mahdollisetRatkaisut(int maara, int[] j1, int[] j2) {
		
		ArrayList<Integer> jono = new ArrayList<Integer>();
		ArrayList<Integer> jarjestetty = new ArrayList<Integer>();
		int jononarvo = 0;
		for (int i = 1; i<=maara; i++) {
			jono.add(i);
		}
		for (int i = 1; i<=maara; i++) {
			int arvo1 = j1[i-1];
			int arvo2 = j2[i-1];
			
			jononarvo = jono.get(0);
			if (jononarvo != arvo1 && jononarvo != arvo2) {
				jarjestetty.add(jononarvo);
				//System.out.print(jono.get(0));
				jono.remove(0);
			}
			else if (jono.size() >= 2) {
				jononarvo = jono.get(1);
				if (jononarvo != arvo1 && jononarvo != arvo2) {
					//System.out.print(jono.get(1));
					jarjestetty.add(jononarvo);
					jono.remove(1);
				}
				else if (jono.size() >= 3) {
					jononarvo = jono.get(2);
					if (jononarvo != arvo1 && jononarvo != arvo2) {
						//System.out.print(jono.get(2));
						jarjestetty.add(jononarvo);
						jono.remove(2);
					}
				}
				
				else {
					jarjestetty.add(jono.get(0));
					//System.out.print(jono.get(0));
					jono.remove(0);
				}
				
			}
			else {
				jarjestetty.add(jononarvo);
				//System.out.print(jono.get(0));
				jono.remove(0);
			}
			
		}
		
	//	System.out.println(jarjestetty);
		int pienempi = Math.min(jarjestetty.size(), 4);
		for (int i = 1; i<=pienempi; i++) {
			
			int arvo1 = j1[maara-i];
			int arvo2 = j2[maara-i];
			
			int jononarvo = jarjestetty.get(maara-i);
			
			if (arvo1 == jononarvo || arvo2 == jononarvo) {
				for (int j = 0; j < maara; j++) {
					int arvo3 = jarjestetty.get(j);
					if (arvo3 != j1[maara-i] && arvo3 != j2[maara-i] && jononarvo != j1[j] && jononarvo != j2[j]) {
						int indeksi = j;
						int ekaindeksi = jarjestetty.indexOf(jononarvo);
						//System.out.println("vaihdetaan: " + jononarvo + " <--> " + arvo3 + ", i: " + i);
						jarjestetty.remove(indeksi);
						jarjestetty.add(indeksi, jononarvo);
						jarjestetty.remove(ekaindeksi);
						jarjestetty.add(ekaindeksi, arvo3);
						break;
					}
				}
			}
			
			
		}
		
		for (int i = 0; i< jarjestetty.size(); i++) {
			if (i != jarjestetty.size()-1)
				io.print(jarjestetty.get(i) + " ");
			else
				io.print(jarjestetty.get(i));
		}
		

	}
	
	
	public static void main(String[] args) {
		
		io = new IO();
		Scanner s = new Scanner(System.in);

		
		int kirjojenMaara = Integer.parseInt(s.nextLine());
		int[] jarjestys1 = new int[kirjojenMaara];
		int[] jarjestys2 = new int[kirjojenMaara];
		

		String jarjestyseka = s.nextLine();
		String jarjestystoka = s.nextLine();
		
		String[] j1 = jarjestyseka.split("\\s+");
		String[] j2 = jarjestystoka.split("\\s+");
		
		for (int i = 0; i<j1.length; i++) {
			jarjestys1[i] = Integer.parseInt(j1[i]);
			jarjestys2[i] = Integer.parseInt(j2[i]);
		}
		//int[] jarjestys1 = { 1, 3, 4, 2, 5 };
		//int[] jarjestys2 = { 4, 1, 5, 3, 2 };
		//int[] jarjestys1 = { 3, 2, 5, 1, 4, 6, 8, 7};
		//int[] jarjestys2 = { 8, 5, 3, 4, 2, 7, 1, 6};

		mahdollisetRatkaisut(kirjojenMaara, jarjestys1, jarjestys2);
		//kirjojenMaara = s.nextInt();
		
		io.close();
	}

}