162922025-04-21 08:51:11horkaAutó-tortúracpp17Hibás válasz 0/100446ms36088 KiB
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define pb push_back
#define sz(x) (int)x.size()
#define all(x) x.begin(),x.end()
#define rall(x) x.rbegin(),x.rend()
signed main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n,m,k; cin>>n>>m>>k;
    vector<vector<int>> adj(n+1);
    while(m--)
    {
        int a,b; cin>>a>>b;
        adj[a].pb(b);
        adj[b].pb(a);
    }
    int inf=1e7;
    vector<vector<int>> dist(n+1, vector<int> (n+1, inf));
    for(int i=1; i<=n; i++)
    {
        dist[i][i]=0;
        queue<int> q;
        q.push(i);
        while(!q.empty())
        {
            int cs=q.front();
            q.pop();
            for(int &j:adj[cs])
                if(dist[i][cs]+1<dist[i][j])
            {
                dist[i][j]=dist[i][cs]+1;
                q.push(j);
            }
        }
    }
    int l; cin>>l;
    vector<int> p(l+1);
    for(int i=1; i<=l; i++)
        cin>>p[i];
    int b; cin>>b;
    int x; cin>>x;
    int ans=0;
    int ind=1,marad=k;
    while(ind<l)
    {
        int cs=p[ind],kov=p[ind+1];
        if(dist[cs][kov]+(ind+1==l?0:dist[kov][x])<=marad)
        {
            ans+=dist[cs][kov];
            marad-=dist[cs][kov];
            ind++;
        }
        else
        {
            ans+=dist[cs][x];
            if(marad<dist[cs][x])
            {
                cout<<"-1\n";
                return 0;
            }
            marad=k;
            ind++;
            if(dist[x][kov]>k)
            {
                cout<<"-1\n";
                return 0;
            }
            marad-=dist[x][kov];
            ans+=dist[x][kov];
        }
    }
    cout<<ans<<"\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Hibás válasz218ms20024 KiB
subtask20/12
3Elfogadva1ms316 KiB
4Hibás válasz1ms316 KiB
5Hibás válasz1ms316 KiB
6Hibás válasz1ms316 KiB
7Hibás válasz1ms316 KiB
8Hibás válasz1ms316 KiB
9Hibás válasz1ms316 KiB
10Elfogadva1ms316 KiB
subtask30/18
11Elfogadva1ms316 KiB
12Hibás válasz1ms316 KiB
13Hibás válasz1ms316 KiB
14Hibás válasz1ms316 KiB
15Hibás válasz1ms316 KiB
16Hibás válasz1ms316 KiB
17Hibás válasz1ms316 KiB
18Elfogadva1ms316 KiB
19Hibás válasz1ms316 KiB
20Hibás válasz3ms568 KiB
21Hibás válasz2ms564 KiB
22Hibás válasz3ms564 KiB
23Hibás válasz3ms564 KiB
24Hibás válasz3ms564 KiB
25Hibás válasz3ms564 KiB
26Hibás válasz3ms612 KiB
27Hibás válasz2ms564 KiB
subtask40/25
28Elfogadva1ms316 KiB
29Hibás válasz1ms316 KiB
30Hibás válasz1ms316 KiB
31Hibás válasz1ms316 KiB
32Hibás válasz1ms316 KiB
33Hibás válasz1ms316 KiB
34Hibás válasz1ms316 KiB
35Elfogadva1ms316 KiB
36Elfogadva435ms35796 KiB
37Elfogadva389ms35792 KiB
38Elfogadva444ms35984 KiB
39Hibás válasz435ms35984 KiB
40Hibás válasz409ms35892 KiB
41Hibás válasz370ms35892 KiB
42Hibás válasz416ms35892 KiB
43Hibás válasz287ms35944 KiB
44Hibás válasz287ms35892 KiB
45Hibás válasz109ms35892 KiB
subtask50/24
46Hibás válasz446ms35892 KiB
47Hibás válasz381ms35892 KiB
48Hibás válasz435ms35896 KiB
49Hibás válasz418ms35892 KiB
50Hibás válasz250ms35808 KiB
51Hibás válasz444ms35892 KiB
52Hibás válasz381ms35892 KiB
53Hibás válasz444ms35892 KiB
54Elfogadva409ms35892 KiB
55Hibás válasz250ms35892 KiB
subtask60/21
56Elfogadva1ms316 KiB
57Hibás válasz1ms316 KiB
58Hibás válasz1ms316 KiB
59Hibás válasz1ms316 KiB
60Hibás válasz1ms316 KiB
61Hibás válasz1ms316 KiB
62Hibás válasz1ms316 KiB
63Elfogadva1ms316 KiB
64Hibás válasz1ms316 KiB
65Hibás válasz3ms568 KiB
66Hibás válasz2ms564 KiB
67Hibás válasz3ms564 KiB
68Hibás válasz3ms564 KiB
69Hibás válasz3ms564 KiB
70Hibás válasz3ms564 KiB
71Hibás válasz3ms612 KiB
72Hibás válasz2ms564 KiB
73Elfogadva435ms35796 KiB
74Elfogadva389ms35792 KiB
75Elfogadva444ms35984 KiB
76Hibás válasz435ms35984 KiB
77Hibás válasz409ms35892 KiB
78Hibás válasz370ms35892 KiB
79Hibás válasz416ms35892 KiB
80Hibás válasz287ms35944 KiB
81Hibás válasz287ms35892 KiB
82Hibás válasz109ms35892 KiB
83Hibás válasz446ms35892 KiB
84Hibás válasz381ms35892 KiB
85Hibás válasz435ms35896 KiB
86Hibás válasz418ms35892 KiB
87Hibás válasz250ms35808 KiB
88Hibás válasz444ms35892 KiB
89Hibás válasz381ms35892 KiB
90Hibás válasz444ms35892 KiB
91Elfogadva409ms35892 KiB
92Hibás válasz250ms35892 KiB
93Hibás válasz307ms36088 KiB
94Hibás válasz305ms35892 KiB
95Hibás válasz416ms35892 KiB
96Hibás válasz442ms35896 KiB
97Hibás válasz112ms35892 KiB
98Hibás válasz21ms4244 KiB
99Hibás válasz421ms35892 KiB
100Hibás válasz439ms36036 KiB
101Hibás válasz444ms35892 KiB
102Hibás válasz430ms35836 KiB
103Hibás válasz310ms35892 KiB
104Hibás válasz175ms35900 KiB
105Hibás válasz317ms35956 KiB
106Hibás válasz296ms36000 KiB
107Hibás válasz287ms35904 KiB
108Hibás válasz409ms35904 KiB
109Hibás válasz111ms35836 KiB
110Hibás válasz310ms35904 KiB
111Hibás válasz400ms35904 KiB
112Hibás válasz310ms35904 KiB
113Hibás válasz337ms35904 KiB
114Hibás válasz419ms35904 KiB
115Hibás válasz430ms35904 KiB
116Hibás válasz432ms35904 KiB
117Hibás válasz305ms35904 KiB
118Hibás válasz111ms35904 KiB