200202025-12-31 08:42:12VargaVivienVárosnézéscpp17Hibás válasz 20/8032ms2464 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&& !visited[x]){

        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];
            }
            else
            {
             maxi=-1;
             reszeredmeny[varos]=maxi;
            }
        }
        }
        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
1Elfogadva2ms1076 KiB
subtask220/20
2Elfogadva1ms1076 KiB
3Elfogadva2ms1076 KiB
4Elfogadva2ms1076 KiB
5Elfogadva6ms1332 KiB
6Elfogadva3ms1332 KiB
7Elfogadva8ms1588 KiB
8Elfogadva8ms1604 KiB
9Elfogadva1ms1076 KiB
10Elfogadva14ms2464 KiB
11Elfogadva2ms1076 KiB
12Elfogadva1ms1076 KiB
subtask30/25
13Hibás válasz2ms1076 KiB
14Elfogadva2ms1076 KiB
15Elfogadva2ms1092 KiB
16Hibás válasz2ms1076 KiB
17Elfogadva2ms1076 KiB
18Hibás válasz2ms1128 KiB
19Elfogadva2ms1224 KiB
20Elfogadva2ms1076 KiB
21Elfogadva1ms1080 KiB
22Hibás válasz4ms1076 KiB
23Elfogadva3ms1084 KiB
24Hibás válasz4ms1264 KiB
25Hibás válasz4ms1076 KiB
26Elfogadva4ms1076 KiB
27Elfogadva4ms1076 KiB
28Hibás válasz25ms1476 KiB
29Hibás válasz6ms1332 KiB
30Hibás válasz27ms1588 KiB
31Elfogadva16ms1552 KiB
32Elfogadva32ms1736 KiB
33Elfogadva10ms1860 KiB
subtask40/20
34Elfogadva1ms1076 KiB
35Elfogadva2ms1076 KiB
36Elfogadva2ms1076 KiB
37Elfogadva2ms1260 KiB
38Hibás válasz2ms1076 KiB
39Elfogadva2ms1212 KiB
40Elfogadva2ms1076 KiB
41Elfogadva2ms1164 KiB
42Elfogadva2ms1076 KiB
43Elfogadva2ms1076 KiB
44Hibás válasz1ms1076 KiB
45Elfogadva2ms1076 KiB
46Hibás válasz2ms1080 KiB
47Hibás válasz2ms1076 KiB
48Elfogadva2ms1144 KiB
49Elfogadva2ms1076 KiB
50Elfogadva2ms1080 KiB
51Elfogadva2ms1080 KiB
52Elfogadva2ms1272 KiB
53Elfogadva2ms1076 KiB
54Elfogadva2ms1076 KiB
55Elfogadva2ms1288 KiB
56Hibás válasz2ms1076 KiB
57Hibás válasz2ms1076 KiB
58Hibás válasz2ms1176 KiB
59Hibás válasz2ms988 KiB
60Elfogadva2ms1080 KiB
61Elfogadva2ms1272 KiB
62Hibás válasz2ms1080 KiB
63Hibás válasz1ms1076 KiB
64Elfogadva2ms1332 KiB
65Elfogadva2ms1076 KiB
66Hibás válasz2ms1076 KiB
subtask50/15
67Elfogadva1ms1076 KiB
68Elfogadva1ms1076 KiB
69Elfogadva2ms1076 KiB
70Elfogadva2ms1076 KiB
71Elfogadva6ms1332 KiB
72Elfogadva3ms1332 KiB
73Elfogadva8ms1588 KiB
74Elfogadva8ms1604 KiB
75Elfogadva1ms1076 KiB
76Elfogadva14ms2464 KiB
77Elfogadva2ms1076 KiB
78Elfogadva1ms1076 KiB
79Hibás válasz2ms1076 KiB
80Elfogadva2ms1076 KiB
81Elfogadva2ms1092 KiB
82Hibás válasz2ms1076 KiB
83Elfogadva2ms1076 KiB
84Hibás válasz2ms1128 KiB
85Elfogadva2ms1224 KiB
86Elfogadva2ms1076 KiB
87Elfogadva1ms1080 KiB
88Hibás válasz4ms1076 KiB
89Elfogadva3ms1084 KiB
90Hibás válasz4ms1264 KiB
91Hibás válasz4ms1076 KiB
92Elfogadva4ms1076 KiB
93Elfogadva4ms1076 KiB
94Hibás válasz25ms1476 KiB
95Hibás válasz6ms1332 KiB
96Hibás válasz27ms1588 KiB
97Elfogadva16ms1552 KiB
98Elfogadva32ms1736 KiB
99Elfogadva10ms1860 KiB
100Elfogadva2ms1076 KiB
101Elfogadva2ms1076 KiB
102Elfogadva2ms1260 KiB
103Hibás válasz2ms1076 KiB
104Elfogadva2ms1212 KiB
105Elfogadva2ms1076 KiB
106Elfogadva2ms1164 KiB
107Elfogadva2ms1076 KiB
108Elfogadva2ms1076 KiB
109Hibás válasz1ms1076 KiB
110Elfogadva2ms1076 KiB
111Hibás válasz2ms1080 KiB
112Hibás válasz2ms1076 KiB
113Elfogadva2ms1144 KiB
114Elfogadva2ms1076 KiB
115Elfogadva2ms1080 KiB
116Elfogadva2ms1080 KiB
117Elfogadva2ms1272 KiB
118Elfogadva2ms1076 KiB
119Elfogadva2ms1076 KiB
120Elfogadva2ms1288 KiB
121Hibás válasz2ms1076 KiB
122Hibás válasz2ms1076 KiB
123Hibás válasz2ms1176 KiB
124Hibás válasz2ms988 KiB
125Elfogadva2ms1080 KiB
126Elfogadva2ms1272 KiB
127Hibás válasz2ms1080 KiB
128Hibás válasz1ms1076 KiB
129Elfogadva2ms1332 KiB
130Elfogadva2ms1076 KiB
131Hibás válasz2ms1076 KiB
132Elfogadva4ms1076 KiB
133Elfogadva2ms1264 KiB
134Elfogadva4ms1076 KiB
135Elfogadva3ms1076 KiB
136Hibás válasz3ms1240 KiB
137Elfogadva3ms1076 KiB
138Hibás válasz4ms1076 KiB
139Elfogadva3ms1076 KiB
140Hibás válasz6ms1456 KiB
141Hibás válasz4ms1516 KiB
142Hibás válasz9ms1588 KiB
143Hibás válasz9ms1656 KiB
144Hibás válasz12ms1844 KiB
145Hibás válasz8ms1496 KiB
146Hibás válasz20ms2340 KiB
147Hibás válasz17ms2080 KiB
148Hibás válasz16ms1812 KiB
149Hibás válasz10ms1700 KiB