200132025-12-31 01:20:5942Városnézéspypy3Elfogadva 80/80160ms34524 KiB
from sys import stdin,setrecursionlimit
input=stdin.readline
setrecursionlimit(10**6)

def solv():
    N,M = map(int,input().split())
    P = [0]+list(map(int,input().split()))
    G = [set() for i in range(N+1)]
    Ginv = [set() for i in range(N+1)]
    for i in range(M):
        x,y = map(int,input().split())
        G[x].add(y)
        Ginv[y].add(x)
    visited={N}
    cur=[N]
    while cur:
        tmp=set()
        for v in cur:
            for w in Ginv[v]:
                if w not in visited:
                    tmp.add(w)
                    visited.add(w)
        cur=tmp
    if 1 not in visited:
        print(-1)
        return
    #print(visited,Ginv)
    for v in visited:
        tmp=[]
        for w in G[v]:
            if w not in visited:
                tmp.append(w)
        for w in tmp:
            G[v].remove(w)
    #print(G)
    res=[0]*(N+1)
    reached=[False]*(N+1)
    res[N]=P[N]
    reached[N]=True
    cur=[N]
    def rek(i):
        cur=-1
        for v in G[i]:
            if reached[v]:
                cur=max(cur,res[v]+P[i])
            else:
                rek(v)
                cur=max(cur,res[v]+P[i])
        reached[i]=True
        res[i]=cur
    rek(1)
    """
    while cur:
        tmp=set()
        for v in cur:
            if reached[v]<len(G[v]):
                tmp.add(v)
                continue
            for w in Ginv[v]:
                res[w]=max(res[w],res[v]+P[w])
                reached[w]+=1
                tmp.add(w)
        cur=tmp
    """
    print(res[1])
    RES=[1]
    while RES[-1]!=N:
        for v in G[RES[-1]]:
            if res[v]+P[RES[-1]]==res[RES[-1]]:
                RES.append(v)
                break
    print(*RES)

solv()
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva46ms19692 KiB
subtask220/20
2Elfogadva43ms19792 KiB
3Elfogadva39ms19864 KiB
4Elfogadva39ms19856 KiB
5Elfogadva68ms22708 KiB
6Elfogadva67ms22656 KiB
7Elfogadva64ms24500 KiB
8Elfogadva72ms24284 KiB
9Elfogadva43ms21212 KiB
10Elfogadva116ms34208 KiB
11Elfogadva45ms19820 KiB
12Elfogadva46ms19832 KiB
subtask325/25
13Elfogadva43ms19804 KiB
14Elfogadva39ms19684 KiB
15Elfogadva39ms19676 KiB
16Elfogadva48ms21076 KiB
17Elfogadva45ms19684 KiB
18Elfogadva43ms21204 KiB
19Elfogadva39ms19932 KiB
20Elfogadva45ms19816 KiB
21Elfogadva39ms19936 KiB
22Elfogadva71ms22120 KiB
23Elfogadva54ms21580 KiB
24Elfogadva68ms22748 KiB
25Elfogadva59ms22236 KiB
26Elfogadva65ms22268 KiB
27Elfogadva71ms22592 KiB
28Elfogadva123ms27248 KiB
29Elfogadva83ms23516 KiB
30Elfogadva142ms27780 KiB
31Elfogadva101ms25364 KiB
32Elfogadva96ms28020 KiB
33Elfogadva68ms24284 KiB
subtask420/20
34Elfogadva39ms19832 KiB
35Elfogadva43ms19852 KiB
36Elfogadva43ms19876 KiB
37Elfogadva39ms19916 KiB
38Elfogadva50ms21068 KiB
39Elfogadva41ms19900 KiB
40Elfogadva48ms21288 KiB
41Elfogadva41ms20144 KiB
42Elfogadva46ms19988 KiB
43Elfogadva46ms19960 KiB
44Elfogadva43ms21124 KiB
45Elfogadva39ms19672 KiB
46Elfogadva50ms21112 KiB
47Elfogadva48ms21124 KiB
48Elfogadva48ms21148 KiB
49Elfogadva45ms21068 KiB
50Elfogadva39ms19712 KiB
51Elfogadva39ms19896 KiB
52Elfogadva43ms19732 KiB
53Elfogadva43ms19888 KiB
54Elfogadva45ms19684 KiB
55Elfogadva41ms19872 KiB
56Elfogadva43ms19756 KiB
57Elfogadva37ms19916 KiB
58Elfogadva41ms20156 KiB
59Elfogadva45ms19936 KiB
60Elfogadva43ms19688 KiB
61Elfogadva39ms19684 KiB
62Elfogadva45ms19984 KiB
63Elfogadva45ms19732 KiB
64Elfogadva39ms19928 KiB
65Elfogadva39ms19692 KiB
66Elfogadva39ms19940 KiB
subtask515/15
67Elfogadva39ms19832 KiB
68Elfogadva43ms19792 KiB
69Elfogadva39ms19864 KiB
70Elfogadva39ms19856 KiB
71Elfogadva68ms22708 KiB
72Elfogadva67ms22656 KiB
73Elfogadva64ms24500 KiB
74Elfogadva72ms24284 KiB
75Elfogadva43ms21212 KiB
76Elfogadva116ms34208 KiB
77Elfogadva45ms19820 KiB
78Elfogadva46ms19832 KiB
79Elfogadva43ms19804 KiB
80Elfogadva39ms19684 KiB
81Elfogadva39ms19676 KiB
82Elfogadva48ms21076 KiB
83Elfogadva45ms19684 KiB
84Elfogadva43ms21204 KiB
85Elfogadva39ms19932 KiB
86Elfogadva45ms19816 KiB
87Elfogadva39ms19936 KiB
88Elfogadva71ms22120 KiB
89Elfogadva54ms21580 KiB
90Elfogadva68ms22748 KiB
91Elfogadva59ms22236 KiB
92Elfogadva65ms22268 KiB
93Elfogadva71ms22592 KiB
94Elfogadva123ms27248 KiB
95Elfogadva83ms23516 KiB
96Elfogadva142ms27780 KiB
97Elfogadva101ms25364 KiB
98Elfogadva96ms28020 KiB
99Elfogadva68ms24284 KiB
100Elfogadva43ms19852 KiB
101Elfogadva43ms19876 KiB
102Elfogadva39ms19916 KiB
103Elfogadva50ms21068 KiB
104Elfogadva41ms19900 KiB
105Elfogadva48ms21288 KiB
106Elfogadva41ms20144 KiB
107Elfogadva46ms19988 KiB
108Elfogadva46ms19960 KiB
109Elfogadva43ms21124 KiB
110Elfogadva39ms19672 KiB
111Elfogadva50ms21112 KiB
112Elfogadva48ms21124 KiB
113Elfogadva48ms21148 KiB
114Elfogadva45ms21068 KiB
115Elfogadva39ms19712 KiB
116Elfogadva39ms19896 KiB
117Elfogadva43ms19732 KiB
118Elfogadva43ms19888 KiB
119Elfogadva45ms19684 KiB
120Elfogadva41ms19872 KiB
121Elfogadva43ms19756 KiB
122Elfogadva37ms19916 KiB
123Elfogadva41ms20156 KiB
124Elfogadva45ms19936 KiB
125Elfogadva43ms19688 KiB
126Elfogadva39ms19684 KiB
127Elfogadva45ms19984 KiB
128Elfogadva45ms19732 KiB
129Elfogadva39ms19928 KiB
130Elfogadva39ms19692 KiB
131Elfogadva39ms19940 KiB
132Elfogadva59ms21980 KiB
133Elfogadva50ms21416 KiB
134Elfogadva57ms21940 KiB
135Elfogadva59ms21648 KiB
136Elfogadva71ms22144 KiB
137Elfogadva61ms21844 KiB
138Elfogadva52ms21992 KiB
139Elfogadva57ms22520 KiB
140Elfogadva74ms24280 KiB
141Elfogadva59ms22672 KiB
142Elfogadva71ms25820 KiB
143Elfogadva148ms30172 KiB
144Elfogadva71ms27092 KiB
145Elfogadva112ms28384 KiB
146Elfogadva90ms32672 KiB
147Elfogadva160ms34524 KiB
148Elfogadva138ms31156 KiB
149Elfogadva104ms28308 KiB