185772025-10-27 14:52:58KristófVárosnézéscpp17Time limit exceeded 40/801.105s197460 KiB
#include <iostream>
#include <vector>
#include <queue>
using namespace std;

vector<vector<pair<int,int>>> graph;
vector<int> maxs;
priority_queue<pair<int,pair<int,int>>> help; //.first= weight , .second.first father .second.second destination
vector<int> parent;

void djikstra(int s)
{
for(auto x : graph[s])
    {
    help.push({x.first,{s,x.second}});
    }
int prev=s;
while(!help.empty())
    {
    int v=help.top().second.second;
    //cout<<v<<" "<<maxs[v]<<" "<<prev<<" "<<maxs[prev]<<" "<<help.top().first<<"          ";
    //maxs[v]=max(maxs[v],maxs[help.top().second.first]+help.top().first);
    if(maxs[v]<maxs[help.top().second.first]+help.top().first)
        {
        maxs[v]=maxs[help.top().second.first]+help.top().first;
        parent[v]=help.top().second.first;
        }
    //cout<<v<<" "<<maxs[v]<<" "<<prev<<" "<<maxs[prev]<<" "<<help.top().first<<endl;
    //prev=v;
    help.pop();
    for(auto x : graph[v])
        {
        help.push({x.first,{v,x.second}});
        }
    }
}


int main()
{
    int n,m;
    cin>>n>>m;
    graph.resize(n+1);
    maxs.resize(n+1,-1);
    parent.resize(n+1,-1);
    vector<int> weights(n+1);
    for(int i=1;i<=n;i++)
        {
        cin>>weights[i];
        }
    int x,y;
    for(int i=1;i<=m;i++)
        {
        cin>>x>>y;
        graph[x].push_back({weights[y],y});
        }
    maxs[1]=weights[1];
    djikstra(1);
    cout<<maxs[n]<<endl;
    int i=n;
    if(maxs[n]==-1)
        {

        return 0;
        }
    vector<int> ans;
    ans.push_back(n);
    while(parent[i]!=-1)
        {
        ans.push_back(parent[i]);
        i=parent[i];
        }
    for(int i=ans.size()-1;i>-1;i--)
        {
        cout<<ans[i]<<" ";
        }
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms316 KiB
subtask220/20
2Accepted1ms508 KiB
3Accepted1ms316 KiB
4Accepted1ms316 KiB
5Accepted6ms564 KiB
6Accepted3ms512 KiB
7Accepted8ms916 KiB
8Accepted8ms828 KiB
9Accepted1ms316 KiB
10Accepted14ms1288 KiB
11Accepted1ms316 KiB
12Accepted1ms316 KiB
subtask30/25
13Accepted1ms316 KiB
14Accepted1ms504 KiB
15Accepted1ms316 KiB
16Accepted7ms316 KiB
17Accepted1ms316 KiB
18Accepted1ms316 KiB
19Accepted1ms316 KiB
20Accepted1ms316 KiB
21Accepted1ms316 KiB
22Time limit exceeded1.103s99004 KiB
23Accepted2ms468 KiB
24Time limit exceeded1.105s197460 KiB
25Accepted323ms2008 KiB
26Accepted3ms652 KiB
27Accepted4ms516 KiB
28Time limit exceeded1.092s50300 KiB
29Accepted111ms3748 KiB
30Time limit exceeded1.085s50284 KiB
31Accepted16ms820 KiB
32Accepted34ms1332 KiB
33Accepted10ms1100 KiB
subtask420/20
34Accepted1ms316 KiB
35Accepted1ms508 KiB
36Accepted1ms316 KiB
37Accepted1ms316 KiB
38Accepted4ms500 KiB
39Accepted1ms316 KiB
40Accepted2ms316 KiB
41Accepted1ms364 KiB
42Accepted1ms316 KiB
43Accepted1ms316 KiB
44Accepted7ms496 KiB
45Accepted1ms316 KiB
46Accepted61ms1068 KiB
47Accepted1ms404 KiB
48Accepted1ms316 KiB
49Accepted1ms316 KiB
50Accepted1ms500 KiB
51Accepted1ms316 KiB
52Accepted1ms316 KiB
53Accepted1ms316 KiB
54Accepted1ms316 KiB
55Accepted1ms316 KiB
56Accepted1ms316 KiB
57Accepted1ms316 KiB
58Accepted1ms316 KiB
59Accepted1ms500 KiB
60Accepted1ms400 KiB
61Accepted1ms508 KiB
62Accepted1ms316 KiB
63Accepted1ms316 KiB
64Accepted1ms316 KiB
65Accepted1ms316 KiB
66Accepted1ms508 KiB
subtask50/15
67Accepted1ms316 KiB
68Accepted1ms508 KiB
69Accepted1ms316 KiB
70Accepted1ms316 KiB
71Accepted6ms564 KiB
72Accepted3ms512 KiB
73Accepted8ms916 KiB
74Accepted8ms828 KiB
75Accepted1ms316 KiB
76Accepted14ms1288 KiB
77Accepted1ms316 KiB
78Accepted1ms316 KiB
79Accepted1ms316 KiB
80Accepted1ms504 KiB
81Accepted1ms316 KiB
82Accepted7ms316 KiB
83Accepted1ms316 KiB
84Accepted1ms316 KiB
85Accepted1ms316 KiB
86Accepted1ms316 KiB
87Accepted1ms316 KiB
88Time limit exceeded1.103s99004 KiB
89Accepted2ms468 KiB
90Time limit exceeded1.105s197460 KiB
91Accepted323ms2008 KiB
92Accepted3ms652 KiB
93Accepted4ms516 KiB
94Time limit exceeded1.092s50300 KiB
95Accepted111ms3748 KiB
96Time limit exceeded1.085s50284 KiB
97Accepted16ms820 KiB
98Accepted34ms1332 KiB
99Accepted10ms1100 KiB
100Accepted1ms508 KiB
101Accepted1ms316 KiB
102Accepted1ms316 KiB
103Accepted4ms500 KiB
104Accepted1ms316 KiB
105Accepted2ms316 KiB
106Accepted1ms364 KiB
107Accepted1ms316 KiB
108Accepted1ms316 KiB
109Accepted7ms496 KiB
110Accepted1ms316 KiB
111Accepted61ms1068 KiB
112Accepted1ms404 KiB
113Accepted1ms316 KiB
114Accepted1ms316 KiB
115Accepted1ms500 KiB
116Accepted1ms316 KiB
117Accepted1ms316 KiB
118Accepted1ms316 KiB
119Accepted1ms316 KiB
120Accepted1ms316 KiB
121Accepted1ms316 KiB
122Accepted1ms316 KiB
123Accepted1ms316 KiB
124Accepted1ms500 KiB
125Accepted1ms400 KiB
126Accepted1ms508 KiB
127Accepted1ms316 KiB
128Accepted1ms316 KiB
129Accepted1ms316 KiB
130Accepted1ms316 KiB
131Accepted1ms508 KiB
132Time limit exceeded1.103s98868 KiB
133Accepted2ms500 KiB
134Time limit exceeded1.105s99132 KiB
135Time limit exceeded1.1s25016 KiB
136Time limit exceeded1.1s25204 KiB
137Accepted32ms940 KiB
138Time limit exceeded1.093s98872 KiB
139Accepted3ms316 KiB
140Accepted6ms564 KiB
141Accepted3ms316 KiB
142Accepted9ms900 KiB
143Accepted29ms820 KiB
144Accepted12ms1048 KiB
145Accepted8ms820 KiB
146Accepted23ms1588 KiB
147Time limit exceeded1.077s7580 KiB
148Time limit exceeded1.08s50284 KiB
149Time limit exceeded1.077s50024 KiB