149822025-02-10 18:01:02horkaFertőzési sorozat (50 pont)cpp17Hibás válasz 31/5013ms548 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=dist[v[1]],utso=dist[v[2]];
        //kozotte mindennek benne kell lennie
        for(int i=1; i<=n; i++)
            if(dist[i]>elso && dist[i]<utso && !bent[i] || bent[i] && (dist[i]<elso || dist[i]>utso)) jo=0;
        if(jo) ans.push_back(kezd);
    }
    cout<<ans.size()<<"\n";
    for(int &i:ans)
        cout<<i<<" ";
    cout<<"\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base31/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/04ms316 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/24ms412 KiB
7Elfogadva2/23ms316 KiB
8Elfogadva2/24ms316 KiB
9Elfogadva2/24ms316 KiB
10Elfogadva2/213ms548 KiB
11Elfogadva1/11ms316 KiB
12Elfogadva2/24ms436 KiB
13Elfogadva2/27ms316 KiB
14Elfogadva2/24ms508 KiB
15Elfogadva2/26ms500 KiB
16Elfogadva2/26ms432 KiB
17Hibás válasz0/24ms432 KiB
18Hibás válasz0/14ms316 KiB
19Hibás válasz0/16ms428 KiB
20Elfogadva1/14ms316 KiB
21Hibás válasz0/112ms436 KiB
22Elfogadva1/112ms424 KiB
23Hibás válasz0/19ms436 KiB
24Hibás válasz0/19ms508 KiB
25Elfogadva1/18ms316 KiB
26Hibás válasz0/19ms436 KiB
27Hibás válasz0/112ms436 KiB
28Hibás válasz0/19ms436 KiB
29Elfogadva1/110ms428 KiB
30Hibás válasz0/19ms432 KiB
31Hibás válasz0/19ms316 KiB
32Hibás válasz0/19ms412 KiB
33Hibás válasz0/112ms500 KiB
34Hibás válasz0/112ms316 KiB
35Hibás válasz0/112ms436 KiB
36Hibás válasz0/112ms436 KiB
37Hibás válasz0/112ms436 KiB
38Elfogadva1/112ms500 KiB
39Elfogadva1/19ms432 KiB
40Hibás válasz0/112ms500 KiB