Rezultati

Up. imeNalogaJezikRezultatČas oddaje
GrekikiSquad-2017 Jungle Speed Java 100/100OK 11. maj '17 @ 18:24

Test Točke Porabljen spomin Porabljen čas Status
#1 9/9 29,523 MiB 0,000 s OK
#2 9/9 33,039 MiB 0,000 s OK
#3 9/9 25,500 MiB 0,000 s OK
#4 9/9 29,387 MiB 0,000 s OK
#5 9/9 29,152 MiB 0,000 s OK
#6 9/9 31,473 MiB 0,000 s OK
#7 9/9 31,527 MiB 0,000 s OK
#8 9/9 30,301 MiB 0,000 s OK
#9 9/9 27,941 MiB 0,000 s OK
#10 9/9 27,590 MiB 0,000 s OK
#11 10/10 25,766 MiB 0,000 s OK

Ocenjevani program (n2.java):
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
import java.util.StringTokenizer;
import java.util.Vector;

public class n2 {
	public static void print(Vector<Queue<Integer>>q) {
		for(int i=0;i<q.size();i++) {
			System.out.print(q.elementAt(i).toString()+" ");
		}
		System.out.println();
	}
	public static void main(String[] args) throws Exception {
		BufferedReader in=new BufferedReader(new InputStreamReader(System.in));
		int n=Integer.parseInt(in.readLine());
		StringTokenizer st=new StringTokenizer(in.readLine());
		Vector<Queue<Integer>>roke=new Vector<Queue<Integer>>();
		Vector<Queue<Integer>>kup=new Vector<Queue<Integer>>();
		for(int i=0;i<n;i++) {
			roke.add(new LinkedList<Integer>());
			kup.add(new LinkedList<Integer>());
		}
		int t=st.countTokens();
		Vector<Vector<Integer>>input=new Vector<Vector<Integer>>();
		for(int i=0;i<n;i++) {
			input.add(new Vector<Integer>());
		}
		for(int i=0;i<t;i++) {
			input.elementAt(i%n).add(Integer.parseInt(st.nextToken()));
		}
		for(int i=0;i<n;i++) {
			for(int j=input.elementAt(i).size()-1;j>=0;j--) {
				roke.elementAt(i).add(input.elementAt(i).elementAt(j));
			}
		}
		int p=0;
		int z=-1;
		while(true) {
//			print(roke);
//			print(kup);
//			System.out.println();
			if(roke.elementAt(p).size()==0){
				if(kup.elementAt(p).isEmpty()){
					z=p;
					break;
				}
				while(!kup.elementAt(p).isEmpty()) {
					roke.elementAt(p).add(kup.elementAt(p).poll());
				}
			}
			int r=roke.elementAt(p).poll();
			kup.elementAt(p).add(r);
			for(int i=0;i<n;i++) {
				if(i==p||kup.elementAt(i).isEmpty()) {
					continue;
				}
				Object[]spam= {};
				spam=kup.elementAt(i).toArray();
				if(spam[spam.length-1].equals(r)){
					while(!kup.elementAt(i).isEmpty()){
						roke.elementAt(p).add(kup.elementAt(i).poll());
					}
					while(!kup.elementAt(p).isEmpty()){
						roke.elementAt(p).add(kup.elementAt(p).poll());
					}
					if(roke.elementAt(p).isEmpty()) {
						z=p;
					}
					p--;
					break;
				}
			}
			if(z!=-1) {
				break;
			}
			p++;
			p%=n;
		}
		System.out.println(z+1);
	}
}