Rezultati

Up. imeNalogaJezikRezultatČas oddaje
javanskivaljar-2018 Dolenjec Java 0/100Prekoračen čas (TLE) 10. maj '18 @ 20:07

Test Točke Porabljen spomin Porabljen čas Status
#1 3/3 36,469 MiB 0,000 s OK
#2 3/3 39,305 MiB 0,000 s OK
#3 0/3 37,238 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​DA
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#4 3/3 36,598 MiB 0,000 s OK
#5 3/3 34,219 MiB 0,000 s OK
#6 3/3 34,043 MiB 0,000 s OK
#7 0/3 34,285 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​DA
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#8 0/3 34,145 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​DA
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#9 0/3 36,191 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​DA
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#10 3/3 35,672 MiB 0,000 s OK
#11 3/3 37,090 MiB 0,000 s OK
#12 3/3 37,012 MiB 0,000 s OK
#13 3/3 40,609 MiB 0,000 s OK
#14 3/3 39,988 MiB 0,000 s OK
#15 3/3 0,000 MiB 0,000 s OK
#16 3/3 38,602 MiB 0,000 s OK
#17 3/3 39,516 MiB 0,000 s OK
#18 3/3 40,012 MiB 0,000 s OK
#19 3/3 41,230 MiB 0,000 s OK
#20 3/3 39,824 MiB 0,000 s OK
#21 3/3 39,906 MiB 0,000 s OK
#22 3/3 63,613 MiB 0,635 s OK
#23 0/3 112,313 MiB 1,901 s Napačen odgovor
Tvoj izhod:
​DA
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#24 0/3 93,781 MiB 2,329 s Prekoračen čas
#25 3/3 92,477 MiB 1,696 s OK
#26 3/3 93,980 MiB 1,528 s OK
#27 3/3 87,711 MiB 1,102 s OK
#28 0/3 102,730 MiB 1,576 s Napačen odgovor
Tvoj izhod:
​DA
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>
#29 3/3 93,563 MiB 2,000 s OK
#30 3/3 88,945 MiB 1,771 s OK
#31 3/3 85,543 MiB 1,244 s OK
#32 3/3 93,090 MiB 1,770 s OK
#33 0/4 34,492 MiB 0,000 s Napačen odgovor
Tvoj izhod:
​DA
<<<EOF>>>
Pravilen izhod:
​NE
<<<EOF>>>

Ocenjevani program (Dol.java):
import java.util.ArrayList;
import java.util.Scanner;

/**
 * Created by javanskivaljar-2018 on 5/10/18.
 */
public class Dol {
    public static Node[] stavbe;
    public static void main(String[] args) {
        Scanner Sc = new Scanner(System.in);
        int n = Sc.nextInt();
        int m = Sc.nextInt();
        int d = Sc.nextInt();
        int q0  = Sc.nextInt();

        stavbe = new Node[n];
        for(int i = 0; i < n; i++){
            stavbe[i] = new Node();
            stavbe[i].index = i;
        }
        for(int i = 0; i < d; i++){
            int IndexGostilne = Sc.nextInt();
            stavbe[IndexGostilne - 1].Gostilna = true;
        }
        for(int i = 0; i < m; i++){
            int vhod = Sc.nextInt();
            int izhod = Sc.nextInt();
            stavbe[vhod - 1].naslednjeStavbe.add(stavbe[izhod - 1]);
            stavbe[izhod - 1].indegree++;
        }
        solve(stavbe[q0-1]);
        System.out.println("NE");
    }
    static void solve(Node q){
        
        if(q.naslednjeStavbe.contains(q) || (q.Gostilna && q.visited > 0)){
            System.out.println("DA");
            System.exit(0);
        }
        if(q.visited > q.indegree){
            return;
        }

        q.visited++;
        for(Node m : q.naslednjeStavbe){
            solve(m);
        }
    }
}
class Node{

    boolean Gostilna = false;
    int visited = 0;
    int indegree = 0;
    int index = 0;
    ArrayList<Node> naslednjeStavbe = new ArrayList<Node>();
}