150862025-02-12 14:56:36iSamu7598Fertőzési sorozat (50 pont)cpp17Accepted 50/5014ms612 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,m,k; cin>>n>>m>>k;
    vector<int> v(k+1);
    for(int i=1; i<=k; i++)
        cin>>v[i];
    vector<vector<int>> adj(n+1);
    for(int i=0; i<m; i++)
    {
        int a,b; cin>>a>>b;
        adj[a].push_back(b);
        adj[b].push_back(a);
    }
    vector<bool> bent(n+1);
    for(int &i:v)
        bent[i]=1;
    vector<int> ans;
    for(int kezd=1; kezd<=n; kezd++)
    {
        queue<int> q;
        vector<int> dist(n+1, n+1);
        q.push(kezd);
        dist[kezd]=0;
        while(!q.empty())
        {
            int cs=q.front();
            q.pop();
            for(int &i:adj[cs])
                if(dist[cs]+1<dist[i])
            {
                dist[i]=dist[cs]+1;
                q.push(i);
            }
        }
        bool jo=1;
        for(int i=2; i<=k; i++)
            if(dist[v[i-1]]>dist[v[i]]) jo=0;
        if(!jo) continue;
        int elso=n+1,utso=0;
        for(int i=1; i<=n; i++)
            if(bent[i])
        {
            elso=min(elso,dist[i]);
            utso=max(utso,dist[i]);
        }
        //kozotte mindennek benne kell lennie
        for(int i=1; i<=n; i++)
            if(dist[i]>elso && dist[i]<utso && !bent[i]) jo=0;
        if(jo) ans.push_back(kezd);
    }
    cout<<ans.size()<<"\n";
    for(int &i:ans)
        cout<<i<<" ";
    cout<<"\n";
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms500 KiB
2Accepted0/01ms316 KiB
3Accepted0/04ms316 KiB
4Accepted2/21ms508 KiB
5Accepted2/21ms316 KiB
6Accepted2/24ms316 KiB
7Accepted2/24ms316 KiB
8Accepted2/24ms316 KiB
9Accepted2/24ms316 KiB
10Accepted2/214ms436 KiB
11Accepted1/11ms416 KiB
12Accepted2/26ms508 KiB
13Accepted2/27ms316 KiB
14Accepted2/24ms316 KiB
15Accepted2/26ms316 KiB
16Accepted2/26ms500 KiB
17Accepted2/24ms500 KiB
18Accepted1/14ms432 KiB
19Accepted1/16ms432 KiB
20Accepted1/16ms508 KiB
21Accepted1/112ms316 KiB
22Accepted1/112ms440 KiB
23Accepted1/19ms424 KiB
24Accepted1/18ms436 KiB
25Accepted1/19ms436 KiB
26Accepted1/110ms316 KiB
27Accepted1/112ms436 KiB
28Accepted1/19ms316 KiB
29Accepted1/110ms436 KiB
30Accepted1/19ms320 KiB
31Accepted1/19ms500 KiB
32Accepted1/110ms448 KiB
33Accepted1/113ms612 KiB
34Accepted1/113ms444 KiB
35Accepted1/113ms328 KiB
36Accepted1/112ms444 KiB
37Accepted1/112ms316 KiB
38Accepted1/112ms444 KiB
39Accepted1/110ms444 KiB
40Accepted1/112ms448 KiB