150972025-02-12 19:36:23MrkzFertőzési sorozat (50 pont)cpp17Hibás válasz 0/506ms1384 KiB
#include <iostream>
//#include <fstream>
using namespace std;
int N,K,M,db,St[500];
int fertozes[500], kapcsolat[500][500];
void beolvas(){
    //ifstream f("kapcsolatok.in");
    cin>>N>>M>>K;
    for(int i=1;i<=K;i++)
        cin>>fertozes[i];
    for(int i=1;i<=M;i++){
        int x,y;
        cin>>x>>y;
        kapcsolat[x][y]=1;
        kapcsolat[y][x]=1;
    }
    //f.close();
}
bool vanMegoldas(int szint){
    if(szint==0)
        return false;
    for(int i=1;i<=N;i++){
        for(int j=1;j<=K;j++)
        if(kapcsolat[i][fertozes[1]]==1 || kapcsolat[fertozes[1]][i]==1)
            return true;
    }
    return false;
}
bool Jo(int szint){
    if(szint>N)
        return false;
    for(int i=1;i<=K;i++)
        if(fertozes[i]==St[szint])
            return false;
     for(int i=1;i<=szint-1;i++)
        if(St[szint]==St[i])
            return false;
    return(kapcsolat[St[szint]][fertozes[1]]==1 || kapcsolat[fertozes[1]][St[szint]]==1);
}
void Back(int szint){
    if(vanMegoldas(szint-1)){
        db++;

            for(int j=K+1;j>1;j--){
                fertozes[j]=fertozes[j-1];
            }
            K++;
        fertozes[1]=St[szint-1];
    }
    for(int i=1;i<=N;i++){
        St[szint]=i;
        if(Jo(szint))
            Back(szint+1);
    }
}
int main()
{
    beolvas();
    Back(1);
    cout<<db<<endl;
    for(int i=1;i<=db;i++)
        cout<<fertozes[i]<<" ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Hibás válasz0/01ms508 KiB
2Hibás válasz0/01ms508 KiB
3Hibás válasz0/02ms820 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/21ms592 KiB
6Hibás válasz0/22ms820 KiB
7Hibás válasz0/21ms820 KiB
8Hibás válasz0/22ms820 KiB
9Hibás válasz0/23ms900 KiB
10Hibás válasz0/22ms1332 KiB
11Hibás válasz0/11ms408 KiB
12Hibás válasz0/22ms1332 KiB
13Hibás válasz0/22ms1332 KiB
14Hibás válasz0/22ms1332 KiB
15Hibás válasz0/22ms1332 KiB
16Hibás válasz0/22ms1332 KiB
17Hibás válasz0/22ms1332 KiB
18Hibás válasz0/12ms1384 KiB
19Hibás válasz0/12ms1332 KiB
20Hibás válasz0/12ms1336 KiB
21Hibás válasz0/13ms1332 KiB
22Hibás válasz0/16ms1228 KiB
23Hibás válasz0/12ms1336 KiB
24Hibás válasz0/16ms1332 KiB
25Hibás válasz0/12ms1336 KiB
26Hibás válasz0/12ms1144 KiB
27Hibás válasz0/12ms1332 KiB
28Hibás válasz0/14ms1332 KiB
29Hibás válasz0/12ms1332 KiB
30Hibás válasz0/12ms1332 KiB
31Hibás válasz0/12ms1332 KiB
32Hibás válasz0/12ms1372 KiB
33Hibás válasz0/12ms1332 KiB
34Hibás válasz0/13ms1332 KiB
35Hibás válasz0/12ms1332 KiB
36Hibás válasz0/14ms1332 KiB
37Hibás válasz0/13ms1332 KiB
38Hibás válasz0/14ms1332 KiB
39Hibás válasz0/12ms1260 KiB
40Hibás válasz0/13ms1332 KiB