200112025-12-31 00:39:33VargaVivienVárosnézéscpp17Hibás válasz 20/801.1s2612 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];
            if (maxi>=0){
            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
1Elfogadva2ms1076 KiB
subtask220/20
2Elfogadva2ms1076 KiB
3Elfogadva2ms1076 KiB
4Elfogadva2ms1076 KiB
5Elfogadva6ms1332 KiB
6Elfogadva3ms1076 KiB
7Elfogadva8ms1492 KiB
8Elfogadva8ms1468 KiB
9Elfogadva2ms1116 KiB
10Elfogadva14ms2612 KiB
11Elfogadva2ms1076 KiB
12Elfogadva2ms1076 KiB
subtask30/25
13Hibás válasz2ms1212 KiB
14Elfogadva2ms1260 KiB
15Elfogadva2ms1088 KiB
16Hibás válasz2ms1076 KiB
17Elfogadva2ms1076 KiB
18Hibás válasz2ms1076 KiB
19Elfogadva2ms1076 KiB
20Elfogadva2ms1112 KiB
21Elfogadva2ms1076 KiB
22Hibás válasz4ms1076 KiB
23Elfogadva2ms1164 KiB
24Hibás válasz4ms1136 KiB
25Hibás válasz3ms1076 KiB
26Elfogadva3ms1076 KiB
27Elfogadva4ms1076 KiB
28Hibás válasz25ms1440 KiB
29Hibás válasz6ms1112 KiB
30Hibás válasz27ms1460 KiB
31Elfogadva14ms1516 KiB
32Elfogadva32ms1588 KiB
33Elfogadva9ms1588 KiB
subtask40/20
34Elfogadva2ms1076 KiB
35Elfogadva1ms1268 KiB
36Elfogadva2ms1076 KiB
37Elfogadva2ms1268 KiB
38Hibás válasz2ms1076 KiB
39Elfogadva1ms1076 KiB
40Elfogadva2ms1080 KiB
41Elfogadva2ms1180 KiB
42Elfogadva1ms1076 KiB
43Elfogadva2ms1076 KiB
44Hibás válasz2ms1076 KiB
45Elfogadva2ms1048 KiB
46Hibás válasz2ms1076 KiB
47Hibás válasz2ms1076 KiB
48Elfogadva2ms1092 KiB
49Elfogadva2ms1168 KiB
50Elfogadva1ms1076 KiB
51Elfogadva2ms1076 KiB
52Elfogadva1ms1076 KiB
53Elfogadva2ms1076 KiB
54Elfogadva2ms1076 KiB
55Elfogadva2ms1076 KiB
56Hibás válasz2ms1076 KiB
57Hibás válasz1ms1076 KiB
58Hibás válasz2ms1164 KiB
59Hibás válasz2ms1076 KiB
60Elfogadva2ms1076 KiB
61Elfogadva1ms1076 KiB
62Hibás válasz2ms1156 KiB
63Hibás válasz2ms1076 KiB
64Elfogadva2ms1076 KiB
65Elfogadva2ms1268 KiB
66Hibás válasz2ms1084 KiB
subtask50/15
67Elfogadva2ms1076 KiB
68Elfogadva2ms1076 KiB
69Elfogadva2ms1076 KiB
70Elfogadva2ms1076 KiB
71Elfogadva6ms1332 KiB
72Elfogadva3ms1076 KiB
73Elfogadva8ms1492 KiB
74Elfogadva8ms1468 KiB
75Elfogadva2ms1116 KiB
76Elfogadva14ms2612 KiB
77Elfogadva2ms1076 KiB
78Elfogadva2ms1076 KiB
79Hibás válasz2ms1212 KiB
80Elfogadva2ms1260 KiB
81Elfogadva2ms1088 KiB
82Hibás válasz2ms1076 KiB
83Elfogadva2ms1076 KiB
84Hibás válasz2ms1076 KiB
85Elfogadva2ms1076 KiB
86Elfogadva2ms1112 KiB
87Elfogadva2ms1076 KiB
88Hibás válasz4ms1076 KiB
89Elfogadva2ms1164 KiB
90Hibás válasz4ms1136 KiB
91Hibás válasz3ms1076 KiB
92Elfogadva3ms1076 KiB
93Elfogadva4ms1076 KiB
94Hibás válasz25ms1440 KiB
95Hibás válasz6ms1112 KiB
96Hibás válasz27ms1460 KiB
97Elfogadva14ms1516 KiB
98Elfogadva32ms1588 KiB
99Elfogadva9ms1588 KiB
100Elfogadva1ms1268 KiB
101Elfogadva2ms1076 KiB
102Elfogadva2ms1268 KiB
103Hibás válasz2ms1076 KiB
104Elfogadva1ms1076 KiB
105Elfogadva2ms1080 KiB
106Elfogadva2ms1180 KiB
107Elfogadva1ms1076 KiB
108Elfogadva2ms1076 KiB
109Hibás válasz2ms1076 KiB
110Elfogadva2ms1048 KiB
111Hibás válasz2ms1076 KiB
112Hibás válasz2ms1076 KiB
113Elfogadva2ms1092 KiB
114Elfogadva2ms1168 KiB
115Elfogadva1ms1076 KiB
116Elfogadva2ms1076 KiB
117Elfogadva1ms1076 KiB
118Elfogadva2ms1076 KiB
119Elfogadva2ms1076 KiB
120Elfogadva2ms1076 KiB
121Hibás válasz2ms1076 KiB
122Hibás válasz1ms1076 KiB
123Hibás válasz2ms1164 KiB
124Hibás válasz2ms1076 KiB
125Elfogadva2ms1076 KiB
126Elfogadva1ms1076 KiB
127Hibás válasz2ms1156 KiB
128Hibás válasz2ms1076 KiB
129Elfogadva2ms1076 KiB
130Elfogadva2ms1268 KiB
131Hibás válasz2ms1084 KiB
132Időlimit túllépés1.1s1076 KiB
133Elfogadva2ms1076 KiB
134Időlimit túllépés1.1s1076 KiB
135Elfogadva165ms1236 KiB
136Hibás válasz4ms1216 KiB
137Elfogadva3ms1224 KiB
138Időlimit túllépés1.1s1076 KiB
139Elfogadva3ms1268 KiB
140Hibás válasz6ms1332 KiB
141Hibás válasz3ms1076 KiB
142Hibás válasz9ms1588 KiB
143Hibás válasz9ms1592 KiB
144Hibás válasz12ms2036 KiB
145Hibás válasz8ms1588 KiB
146Hibás válasz20ms2100 KiB
147Hibás válasz17ms2100 KiB
148Hibás válasz16ms1592 KiB
149Hibás válasz10ms1592 KiB