200192025-12-31 08:21:05VargaVivienVárosnézéscpp17Hibás válasz 20/801.1s2628 KiB
#include <iostream>
#include <vector>
#include <string>

using namespace std;


vector <vector<int>> terkep;
int varos_lista[20001];
vector<bool> visited(200001,false);
vector<int> reszeredmeny(200001,-100);
int szam[20001];
int n;
int dist =-1;
int hossz=0;
void latogatas(int varos, int *latvanyossag, int szint)
{
   // bool vege = false;
    //vector<int> maximum;
   // vector<int> temp;
    int maxi = -2;
   // int ch_v=0;
   // cout << "szam" << &szam << endl;
   // cout << "temp" << &temp << endl;
   visited[varos]=true;
    if(varos == n)
    {
     reszeredmeny[n]=latvanyossag[varos - 1];
     varos_lista[szint]=varos;
     szam[n]=szint;
     visited[varos]=false;
     return;
     }
     if (terkep[varos].size()==0)
     {
      reszeredmeny[varos]=-1;
      visited[varos]=false;
      return;
     }
      else{
            for(auto x : terkep[varos])
        {

        if( reszeredmeny[x]<-1){

        latogatas(x, latvanyossag,  szint+1);
           }

        if(reszeredmeny[x]>maxi && !visited[x])
        {

            maxi=reszeredmeny[x];
            if (maxi>=0){
            varos_lista[szint]=varos;
            reszeredmeny[varos]=maxi+latvanyossag[varos - 1];
            szam[varos]=szam[x];
            }
        }
        }
        visited[varos]=false;
        }

}

int main()
{
    int m;
    int x,y;
    cin >> n >> m;
    int numbers[n];
    for(int i=0; i<n; i++) cin >> numbers[i];


    terkep.resize(n+1);
    for(int i = 0; i < m; i++)
    {
        cin >> x >> y;
        terkep[x].push_back(y);

    }
    int db = 0;
latogatas(1, numbers, 0);
    if (reszeredmeny[1]>=0)
    {
        cout << reszeredmeny[1] << endl;
        //cout << szam.size()<< endl;
        for (int j=0;j<=szam[1]; j++)
        {
            cout << varos_lista[j] << " ";
        }
    }
    else
    {
        cout << -1 << endl;
    }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms1076 KiB
subtask220/20
2Elfogadva2ms1076 KiB
3Elfogadva2ms1076 KiB
4Elfogadva2ms1076 KiB
5Elfogadva6ms1332 KiB
6Elfogadva3ms1268 KiB
7Elfogadva8ms1488 KiB
8Elfogadva8ms1480 KiB
9Elfogadva2ms1076 KiB
10Elfogadva14ms2628 KiB
11Elfogadva2ms1076 KiB
12Elfogadva2ms1076 KiB
subtask30/25
13Hibás válasz2ms1268 KiB
14Elfogadva2ms1076 KiB
15Elfogadva2ms1080 KiB
16Hibás válasz2ms1092 KiB
17Elfogadva2ms1312 KiB
18Hibás válasz2ms1100 KiB
19Elfogadva1ms1076 KiB
20Elfogadva2ms1076 KiB
21Elfogadva2ms1076 KiB
22Hibás válasz4ms1268 KiB
23Elfogadva2ms1076 KiB
24Hibás válasz4ms1076 KiB
25Hibás válasz3ms1076 KiB
26Elfogadva3ms1076 KiB
27Elfogadva4ms1076 KiB
28Hibás válasz26ms1496 KiB
29Hibás válasz6ms1148 KiB
30Hibás válasz27ms1464 KiB
31Elfogadva16ms1496 KiB
32Elfogadva32ms1588 KiB
33Elfogadva9ms1744 KiB
subtask40/20
34Elfogadva2ms1076 KiB
35Elfogadva2ms1076 KiB
36Elfogadva2ms1116 KiB
37Elfogadva2ms1080 KiB
38Hibás válasz2ms1076 KiB
39Elfogadva2ms1124 KiB
40Elfogadva2ms1076 KiB
41Elfogadva2ms1180 KiB
42Elfogadva2ms1076 KiB
43Elfogadva1ms1076 KiB
44Hibás válasz1ms1092 KiB
45Elfogadva2ms1008 KiB
46Hibás válasz3ms1416 KiB
47Hibás válasz2ms1076 KiB
48Elfogadva2ms1076 KiB
49Elfogadva3ms1076 KiB
50Elfogadva2ms1076 KiB
51Elfogadva2ms1076 KiB
52Elfogadva2ms1076 KiB
53Elfogadva2ms1076 KiB
54Elfogadva2ms1076 KiB
55Elfogadva1ms1076 KiB
56Hibás válasz1ms1076 KiB
57Hibás válasz2ms1080 KiB
58Hibás válasz2ms1076 KiB
59Hibás válasz2ms1236 KiB
60Elfogadva1ms1092 KiB
61Elfogadva2ms1076 KiB
62Hibás válasz2ms1076 KiB
63Hibás válasz2ms1076 KiB
64Elfogadva2ms1080 KiB
65Elfogadva1ms1100 KiB
66Hibás válasz2ms1076 KiB
subtask50/15
67Elfogadva2ms1076 KiB
68Elfogadva2ms1076 KiB
69Elfogadva2ms1076 KiB
70Elfogadva2ms1076 KiB
71Elfogadva6ms1332 KiB
72Elfogadva3ms1268 KiB
73Elfogadva8ms1488 KiB
74Elfogadva8ms1480 KiB
75Elfogadva2ms1076 KiB
76Elfogadva14ms2628 KiB
77Elfogadva2ms1076 KiB
78Elfogadva2ms1076 KiB
79Hibás válasz2ms1268 KiB
80Elfogadva2ms1076 KiB
81Elfogadva2ms1080 KiB
82Hibás válasz2ms1092 KiB
83Elfogadva2ms1312 KiB
84Hibás válasz2ms1100 KiB
85Elfogadva1ms1076 KiB
86Elfogadva2ms1076 KiB
87Elfogadva2ms1076 KiB
88Hibás válasz4ms1268 KiB
89Elfogadva2ms1076 KiB
90Hibás válasz4ms1076 KiB
91Hibás válasz3ms1076 KiB
92Elfogadva3ms1076 KiB
93Elfogadva4ms1076 KiB
94Hibás válasz26ms1496 KiB
95Hibás válasz6ms1148 KiB
96Hibás válasz27ms1464 KiB
97Elfogadva16ms1496 KiB
98Elfogadva32ms1588 KiB
99Elfogadva9ms1744 KiB
100Elfogadva2ms1076 KiB
101Elfogadva2ms1116 KiB
102Elfogadva2ms1080 KiB
103Hibás válasz2ms1076 KiB
104Elfogadva2ms1124 KiB
105Elfogadva2ms1076 KiB
106Elfogadva2ms1180 KiB
107Elfogadva2ms1076 KiB
108Elfogadva1ms1076 KiB
109Hibás válasz1ms1092 KiB
110Elfogadva2ms1008 KiB
111Hibás válasz3ms1416 KiB
112Hibás válasz2ms1076 KiB
113Elfogadva2ms1076 KiB
114Elfogadva3ms1076 KiB
115Elfogadva2ms1076 KiB
116Elfogadva2ms1076 KiB
117Elfogadva2ms1076 KiB
118Elfogadva2ms1076 KiB
119Elfogadva2ms1076 KiB
120Elfogadva1ms1076 KiB
121Hibás válasz1ms1076 KiB
122Hibás válasz2ms1080 KiB
123Hibás válasz2ms1076 KiB
124Hibás válasz2ms1236 KiB
125Elfogadva1ms1092 KiB
126Elfogadva2ms1076 KiB
127Hibás válasz2ms1076 KiB
128Hibás válasz2ms1076 KiB
129Elfogadva2ms1080 KiB
130Elfogadva1ms1100 KiB
131Hibás válasz2ms1076 KiB
132Időlimit túllépés1.085s1076 KiB
133Elfogadva3ms1272 KiB
134Időlimit túllépés1.083s1076 KiB
135Elfogadva279ms1260 KiB
136Hibás válasz4ms1076 KiB
137Elfogadva4ms1076 KiB
138Időlimit túllépés1.1s1076 KiB
139Elfogadva3ms1076 KiB
140Hibás válasz6ms1332 KiB
141Hibás válasz4ms1332 KiB
142Hibás válasz9ms1504 KiB
143Hibás válasz10ms1588 KiB
144Hibás válasz12ms1844 KiB
145Hibás válasz8ms1836 KiB
146Hibás válasz21ms2232 KiB
147Hibás válasz17ms2100 KiB
148Hibás válasz16ms1588 KiB
149Hibás válasz10ms1588 KiB