237072026-01-27 20:59:59Pedri26Fertőzési sorozat (50 pont)cpp17Elfogadva 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/029ms916 KiB
4Elfogadva2/21ms316 KiB
5Elfogadva2/24ms564 KiB
6Elfogadva2/228ms820 KiB
7Elfogadva2/228ms1008 KiB
8Elfogadva2/228ms1016 KiB
9Elfogadva2/232ms820 KiB
10Elfogadva2/2202ms1472 KiB
11Elfogadva1/11ms316 KiB
12Elfogadva2/2194ms1560 KiB
13Elfogadva2/2194ms1440 KiB
14Elfogadva2/2193ms1428 KiB
15Elfogadva2/2194ms1500 KiB
16Elfogadva2/2195ms1588 KiB
17Elfogadva2/2193ms1408 KiB
18Elfogadva1/1194ms1588 KiB
19Elfogadva1/1194ms1588 KiB
20Elfogadva1/1194ms1588 KiB
21Elfogadva1/1202ms1588 KiB
22Elfogadva1/1202ms1592 KiB
23Elfogadva1/1202ms1588 KiB
24Elfogadva1/1202ms1592 KiB
25Elfogadva1/1202ms1428 KiB
26Elfogadva1/1202ms1504 KiB
27Elfogadva1/1202ms1588 KiB
28Elfogadva1/1202ms1588 KiB
29Elfogadva1/1202ms1584 KiB
30Elfogadva1/1202ms1588 KiB
31Elfogadva1/1202ms1588 KiB
32Elfogadva1/1203ms1484 KiB
33Elfogadva1/1202ms1588 KiB
34Elfogadva1/1202ms1564 KiB
35Elfogadva1/1203ms1636 KiB
36Elfogadva1/1203ms1580 KiB
37Elfogadva1/1203ms1580 KiB
38Elfogadva1/1202ms1520 KiB
39Elfogadva1/1202ms1616 KiB
40Elfogadva1/1202ms1548 KiB