200102025-12-31 00:33:56VargaVivienVárosnézéscpp17Hibás válasz 0/8032ms2596 KiB
#include <iostream>
#include <vector>
#include <string>

using namespace std;


vector <vector<int>> terkep;
int varos_lista[20001];
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;
    if(varos == n)
    {
     reszeredmeny[n]=latvanyossag[varos - 1];
     varos_lista[szint]=varos;
     szam[n]=szint;
     return;
     }
     if (terkep[varos].size()==0)
     {
      reszeredmeny[varos]=-1;
      return;
     }
      else{
            for(auto x : terkep[varos])
        {

        if( reszeredmeny[x]<-1){

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

}

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
subtask20/20
2Elfogadva1ms1076 KiB
3Elfogadva2ms1260 KiB
4Hibás válasz2ms1076 KiB
5Hibás válasz6ms1212 KiB
6Hibás válasz3ms1076 KiB
7Hibás válasz8ms1588 KiB
8Hibás válasz8ms1492 KiB
9Elfogadva1ms1076 KiB
10Hibás válasz14ms2596 KiB
11Hibás válasz2ms1080 KiB
12Hibás válasz1ms968 KiB
subtask30/25
13Hibás válasz2ms1076 KiB
14Elfogadva2ms1076 KiB
15Elfogadva2ms1076 KiB
16Hibás válasz2ms1076 KiB
17Elfogadva2ms1076 KiB
18Hibás válasz2ms1204 KiB
19Elfogadva1ms1076 KiB
20Elfogadva2ms1076 KiB
21Elfogadva2ms1076 KiB
22Hibás válasz4ms1260 KiB
23Elfogadva3ms1080 KiB
24Hibás válasz4ms1076 KiB
25Hibás válasz3ms1076 KiB
26Elfogadva3ms1172 KiB
27Elfogadva4ms1076 KiB
28Hibás válasz26ms1460 KiB
29Hibás válasz6ms1140 KiB
30Hibás válasz27ms1572 KiB
31Hibás válasz14ms1504 KiB
32Elfogadva32ms1588 KiB
33Elfogadva9ms1532 KiB
subtask40/20
34Elfogadva2ms1076 KiB
35Elfogadva2ms1076 KiB
36Elfogadva2ms1272 KiB
37Elfogadva2ms1268 KiB
38Hibás válasz2ms1076 KiB
39Elfogadva2ms1076 KiB
40Hibás válasz2ms1076 KiB
41Hibás válasz1ms1076 KiB
42Elfogadva2ms1260 KiB
43Elfogadva1ms1076 KiB
44Hibás válasz2ms1076 KiB
45Hibás válasz2ms1076 KiB
46Hibás válasz2ms1076 KiB
47Hibás válasz2ms1076 KiB
48Elfogadva2ms1124 KiB
49Hibás válasz2ms1076 KiB
50Elfogadva1ms1076 KiB
51Hibás válasz2ms1076 KiB
52Elfogadva2ms1076 KiB
53Hibás válasz1ms1076 KiB
54Elfogadva2ms1076 KiB
55Elfogadva2ms1080 KiB
56Hibás válasz2ms1076 KiB
57Hibás válasz2ms1076 KiB
58Hibás válasz2ms1076 KiB
59Hibás válasz2ms1084 KiB
60Elfogadva2ms1080 KiB
61Elfogadva1ms1076 KiB
62Hibás válasz1ms1076 KiB
63Hibás válasz2ms1084 KiB
64Elfogadva2ms1076 KiB
65Elfogadva2ms1076 KiB
66Hibás válasz1ms1076 KiB
subtask50/15
67Elfogadva2ms1076 KiB
68Elfogadva1ms1076 KiB
69Elfogadva2ms1260 KiB
70Hibás válasz2ms1076 KiB
71Hibás válasz6ms1212 KiB
72Hibás válasz3ms1076 KiB
73Hibás válasz8ms1588 KiB
74Hibás válasz8ms1492 KiB
75Elfogadva1ms1076 KiB
76Hibás válasz14ms2596 KiB
77Hibás válasz2ms1080 KiB
78Hibás válasz1ms968 KiB
79Hibás válasz2ms1076 KiB
80Elfogadva2ms1076 KiB
81Elfogadva2ms1076 KiB
82Hibás válasz2ms1076 KiB
83Elfogadva2ms1076 KiB
84Hibás válasz2ms1204 KiB
85Elfogadva1ms1076 KiB
86Elfogadva2ms1076 KiB
87Elfogadva2ms1076 KiB
88Hibás válasz4ms1260 KiB
89Elfogadva3ms1080 KiB
90Hibás válasz4ms1076 KiB
91Hibás válasz3ms1076 KiB
92Elfogadva3ms1172 KiB
93Elfogadva4ms1076 KiB
94Hibás válasz26ms1460 KiB
95Hibás válasz6ms1140 KiB
96Hibás válasz27ms1572 KiB
97Hibás válasz14ms1504 KiB
98Elfogadva32ms1588 KiB
99Elfogadva9ms1532 KiB
100Elfogadva2ms1076 KiB
101Elfogadva2ms1272 KiB
102Elfogadva2ms1268 KiB
103Hibás válasz2ms1076 KiB
104Elfogadva2ms1076 KiB
105Hibás válasz2ms1076 KiB
106Hibás válasz1ms1076 KiB
107Elfogadva2ms1260 KiB
108Elfogadva1ms1076 KiB
109Hibás válasz2ms1076 KiB
110Hibás válasz2ms1076 KiB
111Hibás válasz2ms1076 KiB
112Hibás válasz2ms1076 KiB
113Elfogadva2ms1124 KiB
114Hibás válasz2ms1076 KiB
115Elfogadva1ms1076 KiB
116Hibás válasz2ms1076 KiB
117Elfogadva2ms1076 KiB
118Hibás válasz1ms1076 KiB
119Elfogadva2ms1076 KiB
120Elfogadva2ms1080 KiB
121Hibás válasz2ms1076 KiB
122Hibás válasz2ms1076 KiB
123Hibás válasz2ms1076 KiB
124Hibás válasz2ms1084 KiB
125Elfogadva2ms1080 KiB
126Elfogadva1ms1076 KiB
127Hibás válasz1ms1076 KiB
128Hibás válasz2ms1084 KiB
129Elfogadva2ms1076 KiB
130Elfogadva2ms1076 KiB
131Hibás válasz1ms1076 KiB
132Hibás válasz4ms1076 KiB
133Elfogadva2ms1076 KiB
134Hibás válasz4ms1076 KiB
135Hibás válasz3ms1200 KiB
136Hibás válasz3ms1264 KiB
137Hibás válasz3ms1076 KiB
138Hibás válasz4ms1076 KiB
139Elfogadva4ms1192 KiB
140Hibás válasz6ms1392 KiB
141Hibás válasz3ms1332 KiB
142Hibás válasz8ms1488 KiB
143Hibás válasz9ms1640 KiB
144Hibás válasz12ms1784 KiB
145Hibás válasz8ms1588 KiB
146Hibás válasz20ms2260 KiB
147Hibás válasz17ms2088 KiB
148Hibás válasz16ms1736 KiB
149Hibás válasz10ms1592 KiB