189662025-11-13 18:58:17KristófFertőzési sorozat (50 pont)cpp17Időlimit túllépés 36/50600ms508 KiB
#include <iostream>
#include <vector>
#include <set>
#include <queue>
using namespace std;

vector<vector<int>> graph;
vector<int> sorozat;

bool bfs(int s,int n,int k)
{
bool started=false;
vector<bool> visited(n,false);
int i=0;
queue<int> q;
q.push(s);
visited[s]=true;
set <int> nap;
nap.insert(s);
//cout<<s<<" ";
if(sorozat[i] == s)
    {
    started=true;
    }
while(true)
    {

while(!q.empty())
    {

    int u=q.front();q.pop();

    for(int x : graph[u])
        {
        if(!visited[x])
            {
            visited[x]=true;
            //q.push(x);
            nap.insert(x);
            }
        }
    }
    while(nap.count(sorozat[i]))
        {
        //cout<<sorozat[i]<<" ";
        q.push(sorozat[i]);
        nap.erase(sorozat[i]);
        i++;
        if(i==k)
            {
            return true;
            }
        }
    //cout<<started<<" s "<<nap.size()<<" size ";
    if(nap.size()>0)
        {
        if(started)
            {
            return false;
            }

        }
    if(i>0)
        {
        started=true;
        }//cout<<s<<" ";
    //nap.clear();
    for(auto x : nap)
        {
        q.push(x);

        }
    nap.clear();
    }
if(i==k)
    return true;
//cout<<i<<" am"<<s<<endl;
return false;
}



int main()
{
    ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL);
    int n,m,k;
    cin>>n>>m>>k;
    graph.resize(n+1);
    sorozat.resize(k);
    int x,y;
    for(int i=0;i<k;i++)
        {
        cin>>sorozat[i];
        }
    for(int i=0;i<m;i++)
        {
        cin>>x>>y;
        graph[x].push_back(y);
        graph[y].push_back(x);
        }


    sorozat.push_back(-1);
    vector<int> ans;
    for(int i=1;i<=n;i++)
        {
        if(bfs(i,n,k))
            {
            //cout<<endl;
            ans.push_back(i);
            }
        //cout<<endl;
        }
    cout<<ans.size()<<endl;
    for(auto x : ans)
        {
        cout<<x<<" ";
        }
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base36/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/08ms500 KiB
4Időlimit túllépés0/2593ms316 KiB
5Időlimit túllépés0/2600ms316 KiB
6Elfogadva2/28ms444 KiB
7Elfogadva2/28ms444 KiB
8Elfogadva2/28ms316 KiB
9Hibás válasz0/28ms460 KiB
10Elfogadva2/243ms392 KiB
11Hibás válasz0/12ms316 KiB
12Elfogadva2/219ms452 KiB
13Elfogadva2/219ms500 KiB
14Elfogadva2/229ms464 KiB
15Elfogadva2/212ms316 KiB
16Elfogadva2/220ms452 KiB
17Elfogadva2/237ms316 KiB
18Elfogadva1/135ms456 KiB
19Elfogadva1/116ms360 KiB
20Elfogadva1/114ms508 KiB
21Elfogadva1/139ms344 KiB
22Elfogadva1/132ms464 KiB
23Elfogadva1/128ms316 KiB
24Elfogadva1/132ms460 KiB
25Időlimit túllépés0/1574ms316 KiB
26Elfogadva1/143ms316 KiB
27Időlimit túllépés0/1587ms368 KiB
28Elfogadva1/124ms316 KiB
29Elfogadva1/132ms508 KiB
30Elfogadva1/127ms316 KiB
31Elfogadva1/126ms316 KiB
32Időlimit túllépés0/1580ms316 KiB
33Elfogadva1/137ms316 KiB
34Időlimit túllépés0/1582ms316 KiB
35Hibás válasz0/137ms316 KiB
36Időlimit túllépés0/1582ms316 KiB
37Elfogadva1/137ms468 KiB
38Elfogadva1/137ms316 KiB
39Elfogadva1/130ms316 KiB
40Időlimit túllépés0/1574ms316 KiB