237072026-01-27 20:59:59Pedri26Fertőzési sorozat (50 pont)cpp17Accepted 50/50203ms1636 KiB
#include <bits/stdc++.h>

using namespace std;
int n, m, k, sor[501], tav[501][501];
bool a[501][501];

void szel(int i)
{
    int vsor[501], elso=0, utolso=1;
    bool l[501];
    for(int j=1;j<=n;j++)l[j]=false;
    l[i]=true;
    vsor[elso]=i;
    int tavol=1;
    while(elso<utolso)
    {
        for(int j=1;j<=n;j++)
        {
            if(a[vsor[elso]][j] && !l[j])
            {
                vsor[utolso]=j;
                utolso++;
                tav[i][j]=tav[i][vsor[elso]]+1;
                l[j]=true;
            }
        }
        elso++;
    }
}


int main() {
	
    ios::sync_with_stdio(0);
    cin.tie(0);
    cin>>n>>m>>k;
    for(int i=1;i<=k;i++)
    {
        cin>>sor[i];
    }
    for(int i=1;i<=m;i++)
    {
        int b ,c;
        cin>>b>>c;
        a[b][c]=true;
        a[c][b]=true;
    }
    for(int i=1;i<=n;i++)
    {
        szel(i);
    }
    /*for(int i=1;i<=n;i++)
    {
        cout<<i<<"|";
        for(int j=1;j<=n;j++)
        {
            cout<<tav[i][j]<<" ";
        }
        cout<<endl;
    }*/
    int s=0, zp[501];
    for(int i=1;i<=n;i++)
    {
        bool jo=true;
        int reszsornapdb[501]={0};
        int telsornapdb[501]={0};
        for(int j=1;j<k;j++)
        {
            if(tav[i][sor[j]]>tav[i][sor[j+1]])
            {
                jo=false;
                break;
            }
            if(tav[i][sor[j]]<tav[i][sor[j+1]]-1)
            {
                jo=false;
                break;
            }
        }
        if(jo)
        {
            for(int j=1;j<=k;j++)
            {
                reszsornapdb[tav[i][sor[j]]]++;
            }   
            for(int j=1;j<=n;j++)
            {
                telsornapdb[tav[i][j]]++;
            }
            for(int j=tav[i][sor[1]]+1;j<tav[i][sor[k]];j++)
            {
                if(telsornapdb[j]!=reszsornapdb[j])
                {
                    jo=false;
                    break;
                }
            }
        }
        if(jo)
        {
            s++;
            zp[s]=i;
        }
    }
    cout<<s<<endl;
    for(int i=1;i<=s;i++)
    {
        cout<<zp[i]<<" ";
    }
    
    
    
    return 0;
}
SubtaskSumTestVerdictTimeMemory
base50/50
1Accepted0/01ms508 KiB
2Accepted0/01ms316 KiB
3Accepted0/029ms916 KiB
4Accepted2/21ms316 KiB
5Accepted2/24ms564 KiB
6Accepted2/228ms820 KiB
7Accepted2/228ms1008 KiB
8Accepted2/228ms1016 KiB
9Accepted2/232ms820 KiB
10Accepted2/2202ms1472 KiB
11Accepted1/11ms316 KiB
12Accepted2/2194ms1560 KiB
13Accepted2/2194ms1440 KiB
14Accepted2/2193ms1428 KiB
15Accepted2/2194ms1500 KiB
16Accepted2/2195ms1588 KiB
17Accepted2/2193ms1408 KiB
18Accepted1/1194ms1588 KiB
19Accepted1/1194ms1588 KiB
20Accepted1/1194ms1588 KiB
21Accepted1/1202ms1588 KiB
22Accepted1/1202ms1592 KiB
23Accepted1/1202ms1588 KiB
24Accepted1/1202ms1592 KiB
25Accepted1/1202ms1428 KiB
26Accepted1/1202ms1504 KiB
27Accepted1/1202ms1588 KiB
28Accepted1/1202ms1588 KiB
29Accepted1/1202ms1584 KiB
30Accepted1/1202ms1588 KiB
31Accepted1/1202ms1588 KiB
32Accepted1/1203ms1484 KiB
33Accepted1/1202ms1588 KiB
34Accepted1/1202ms1564 KiB
35Accepted1/1203ms1636 KiB
36Accepted1/1203ms1580 KiB
37Accepted1/1203ms1580 KiB
38Accepted1/1202ms1520 KiB
39Accepted1/1202ms1616 KiB
40Accepted1/1202ms1548 KiB