Rezultati

Up. imeNalogaJezikRezultatČas oddaje
scnm1-2018 Dolenjec Java 0/100Napačen odgovor (WA) 10. maj '18 @ 20:00

Test Točke Porabljen spomin Porabljen čas Status
#1 0/3 36,359 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#2 0/3 38,422 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​false
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#3 0/3 33,188 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​false
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#4 0/3 35,449 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#5 0/3 36,574 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#6 0/3 34,465 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#7 0/3 35,227 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​false
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#8 0/3 34,973 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​false
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#9 0/3 34,754 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​false
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#10 0/3 36,570 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#11 0/3 35,820 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​false
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#12 0/3 36,598 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#13 0/3 34,621 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#14 0/3 34,359 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#15 0/3 34,777 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#16 0/3 36,645 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#17 0/3 36,711 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#18 0/3 35,488 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#19 0/3 33,949 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#20 0/3 36,359 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#21 0/3 36,555 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#22 0/3 43,383 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#23 0/3 82,816 MiB 1,134 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#24 0/3 80,090 MiB 0,722 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#25 0/3 80,797 MiB 0,708 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#26 0/3 71,332 MiB 0,682 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#27 0/3 71,742 MiB 0,281 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#28 0/3 87,434 MiB 1,086 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#29 0/3 77,371 MiB 0,839 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#30 0/3 73,055 MiB 0,104 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#31 0/3 73,023 MiB 0,480 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#32 0/3 72,785 MiB 0,334 s Napačen odgovor
Tvoj izhod:
​true
<<<EOF>>>
Pravilen izhod:
​DA
<<<EOF>>>
#33 0/4 36,664 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​false
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>

Ocenjevani program (n1.java):
import java.io.*;
import java.util.*;
import java.math.*;

class graf {
	Vector<Vector<Integer>> E;
	boolean[] gost;

	graf(int n) {
		gost = new boolean[n];
		E=new Vector();
		for (int i = 0; i < n; i++) {
			E.add(new Vector<Integer>());
		}
	}

	boolean solve(int p) {
		Stack<Integer> st = new Stack<Integer>();
		SortedMap<Integer,Integer> inst = new TreeMap<Integer,Integer>();
		st.add(p);
		inst.put(p,0);
		boolean gost = dfs(st, inst, p);
		return gost;
	}
	boolean dfs(Stack<Integer> s, SortedMap<Integer,Integer> ss, int p) {
		for (int q : E.get(p)) {
			if(ss.containsKey(q)) {
				int place=ss.get(q);
				for(int i=place;i<s.size();i++) {
					if(gost[s.get(i)]) {
						return true;
					}
				}
			}else {
				ss.put(q,s.size());
				s.add(q);
				if(dfs(s,ss,q)) {
					return true;
				}
			}
		}
		return false;
	}
}

public class n1 {
	public static void main(String[] args) throws Exception {
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(in.readLine());
		int V = Integer.parseInt(st.nextToken());
		int E = Integer.parseInt(st.nextToken());
		int gost = Integer.parseInt(st.nextToken());
		int p = Integer.parseInt(st.nextToken()) - 1;
		st = new StringTokenizer(in.readLine());
		graf g = new graf(V);
		for (int i = 0; i < gost; i++) {
			g.gost[Integer.parseInt(st.nextToken()) - 1] = true;
		}
		for (int i = 0; i < E; i++) {
			st = new StringTokenizer(in.readLine());
			int l = Integer.parseInt(st.nextToken()) - 1;
			int r = Integer.parseInt(st.nextToken()) - 1;
			g.E.get(l).add(r);
		}
		System.out.println(g.solve(p));
	}

}