201892026-01-04 13:36:38hunzombiVárosnézéscpp17Runtime error 0/804ms564 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n, m;
    vector<int> node_val(n + 1);
    vector<vector<int>> edges(n + 1);
    vector<int> in_edges(n + 1, 0), prev(n + 1, -1);
    vector<int> memo(n + 1, -1);

    cin >> n >> m;

    for (int i=1; i <= n; i++) {
        cin >> node_val[i];
        memo[i] = node_val[i];
    }

    for (int i=0; i < m; i++) {
        int u, v;
        cin >> u >> v;
        edges[u].push_back(v);
        in_edges[v]++;
    }

    queue<int> q;
    for (int i=1; i <= n; i++) {
        if (in_edges[i] == 0) {
            q.push(i);
        }
    }

    while (!q.empty()) {
        int node = q.front();
        q.pop();

        for (int next : edges[node]) {
            if (memo[next] < memo[node] + node_val[next]) {
                memo[next] = memo[node] + node_val[next];
                prev[next] = node;
            }
            if (--in_edges[next] == 0) {
                q.push(next);
            }
        }
    }

    int idx = 0;
    for (int i=1; i <= n; i++) {
        if (memo[i] > memo[idx]) {
            idx = i;
        }
    }
    int sum = memo[idx];
    vector<int> ans;

    while (idx > 0) {
        ans.push_back(idx);
        idx = prev[idx];
    }

    cout << sum << '\n';

    for (int i = ans.size() - 1; i >= 0; i--) {
        cout << ans[i] << ' ';
    }

    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Runtime error3ms316 KiB
subtask20/20
2Runtime error3ms316 KiB
3Runtime error4ms316 KiB
4Runtime error4ms316 KiB
5Runtime error2ms316 KiB
6Runtime error2ms316 KiB
7Runtime error1ms316 KiB
8Runtime error2ms500 KiB
9Runtime error1ms316 KiB
10Runtime error2ms316 KiB
11Runtime error1ms316 KiB
12Runtime error1ms316 KiB
subtask30/25
13Runtime error2ms316 KiB
14Runtime error4ms316 KiB
15Runtime error3ms508 KiB
16Runtime error2ms316 KiB
17Runtime error1ms564 KiB
18Runtime error1ms316 KiB
19Runtime error1ms316 KiB
20Runtime error1ms316 KiB
21Runtime error1ms316 KiB
22Runtime error2ms316 KiB
23Runtime error2ms316 KiB
24Runtime error1ms508 KiB
25Runtime error1ms316 KiB
26Runtime error2ms316 KiB
27Runtime error2ms316 KiB
28Runtime error2ms316 KiB
29Runtime error1ms316 KiB
30Runtime error2ms500 KiB
31Runtime error1ms316 KiB
32Runtime error2ms316 KiB
33Runtime error2ms316 KiB
subtask40/20
34Runtime error4ms472 KiB
35Runtime error1ms316 KiB
36Runtime error4ms564 KiB
37Runtime error3ms316 KiB
38Runtime error1ms316 KiB
39Runtime error3ms316 KiB
40Runtime error1ms316 KiB
41Runtime error2ms316 KiB
42Runtime error1ms508 KiB
43Runtime error2ms316 KiB
44Runtime error1ms316 KiB
45Runtime error2ms316 KiB
46Runtime error1ms316 KiB
47Runtime error1ms316 KiB
48Runtime error1ms316 KiB
49Runtime error1ms316 KiB
50Runtime error3ms316 KiB
51Runtime error3ms316 KiB
52Runtime error3ms316 KiB
53Runtime error3ms316 KiB
54Runtime error3ms316 KiB
55Runtime error2ms316 KiB
56Runtime error1ms512 KiB
57Runtime error3ms316 KiB
58Runtime error1ms316 KiB
59Runtime error1ms316 KiB
60Runtime error3ms316 KiB
61Runtime error3ms508 KiB
62Runtime error1ms316 KiB
63Runtime error3ms500 KiB
64Runtime error1ms500 KiB
65Runtime error4ms316 KiB
66Runtime error1ms512 KiB
subtask50/15
67Runtime error4ms472 KiB
68Runtime error3ms316 KiB
69Runtime error4ms316 KiB
70Runtime error4ms316 KiB
71Runtime error2ms316 KiB
72Runtime error2ms316 KiB
73Runtime error1ms316 KiB
74Runtime error2ms500 KiB
75Runtime error1ms316 KiB
76Runtime error2ms316 KiB
77Runtime error1ms316 KiB
78Runtime error1ms316 KiB
79Runtime error2ms316 KiB
80Runtime error4ms316 KiB
81Runtime error3ms508 KiB
82Runtime error2ms316 KiB
83Runtime error1ms564 KiB
84Runtime error1ms316 KiB
85Runtime error1ms316 KiB
86Runtime error1ms316 KiB
87Runtime error1ms316 KiB
88Runtime error2ms316 KiB
89Runtime error2ms316 KiB
90Runtime error1ms508 KiB
91Runtime error1ms316 KiB
92Runtime error2ms316 KiB
93Runtime error2ms316 KiB
94Runtime error2ms316 KiB
95Runtime error1ms316 KiB
96Runtime error2ms500 KiB
97Runtime error1ms316 KiB
98Runtime error2ms316 KiB
99Runtime error2ms316 KiB
100Runtime error1ms316 KiB
101Runtime error4ms564 KiB
102Runtime error3ms316 KiB
103Runtime error1ms316 KiB
104Runtime error3ms316 KiB
105Runtime error1ms316 KiB
106Runtime error2ms316 KiB
107Runtime error1ms508 KiB
108Runtime error2ms316 KiB
109Runtime error1ms316 KiB
110Runtime error2ms316 KiB
111Runtime error1ms316 KiB
112Runtime error1ms316 KiB
113Runtime error1ms316 KiB
114Runtime error1ms316 KiB
115Runtime error3ms316 KiB
116Runtime error3ms316 KiB
117Runtime error3ms316 KiB
118Runtime error3ms316 KiB
119Runtime error3ms316 KiB
120Runtime error2ms316 KiB
121Runtime error1ms512 KiB
122Runtime error3ms316 KiB
123Runtime error1ms316 KiB
124Runtime error1ms316 KiB
125Runtime error3ms316 KiB
126Runtime error3ms508 KiB
127Runtime error1ms316 KiB
128Runtime error3ms500 KiB
129Runtime error1ms500 KiB
130Runtime error4ms316 KiB
131Runtime error1ms512 KiB
132Runtime error1ms500 KiB
133Runtime error2ms316 KiB
134Runtime error1ms316 KiB
135Runtime error1ms512 KiB
136Runtime error1ms316 KiB
137Runtime error1ms316 KiB
138Runtime error1ms316 KiB
139Runtime error2ms316 KiB
140Runtime error1ms316 KiB
141Runtime error2ms316 KiB
142Runtime error2ms316 KiB
143Runtime error2ms316 KiB
144Runtime error2ms316 KiB
145Runtime error2ms508 KiB
146Runtime error2ms400 KiB
147Runtime error2ms316 KiB
148Runtime error2ms316 KiB
149Runtime error1ms316 KiB