151012025-02-12 20:16:12MrkzFertőzési sorozat (50 pont)cpp11Hibás válasz 0/506ms1524 KiB
#include <iostream>
//#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
int N,K,M,db,St[500];
int kapcsolat[500][500];
vector<int> fertozes(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;
     sort(fertozes.begin()+1, fertozes.begin() + db+1);
    for(int i=1;i<=db;i++)
        cout<<fertozes[i]<<" ";
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/50
1Elfogadva0/01ms316 KiB
2Hibás válasz0/01ms316 KiB
3Hibás válasz0/02ms820 KiB
4Hibás válasz0/21ms316 KiB
5Hibás válasz0/21ms608 KiB
6Hibás válasz0/21ms844 KiB
7Hibás válasz0/21ms820 KiB
8Hibás válasz0/22ms820 KiB
9Hibás válasz0/23ms820 KiB
10Hibás válasz0/22ms1380 KiB
11Hibás válasz0/11ms552 KiB
12Hibás válasz0/22ms1336 KiB
13Hibás válasz0/22ms1332 KiB
14Hibás válasz0/22ms1332 KiB
15Hibás válasz0/22ms1332 KiB
16Hibás válasz0/22ms1336 KiB
17Hibás válasz0/22ms1332 KiB
18Hibás válasz0/12ms1332 KiB
19Hibás válasz0/12ms1332 KiB
20Hibás válasz0/12ms1332 KiB
21Hibás válasz0/13ms1288 KiB
22Hibás válasz0/16ms1332 KiB
23Hibás válasz0/12ms1332 KiB
24Hibás válasz0/16ms1380 KiB
25Hibás válasz0/12ms1524 KiB
26Hibás válasz0/12ms1332 KiB
27Hibás válasz0/13ms1332 KiB
28Hibás válasz0/14ms1524 KiB
29Hibás válasz0/12ms1316 KiB
30Hibás válasz0/12ms1208 KiB
31Hibás válasz0/12ms1332 KiB
32Hibás válasz0/12ms1332 KiB
33Hibás válasz0/13ms1332 KiB
34Hibás válasz0/13ms1524 KiB
35Hibás válasz0/12ms1332 KiB
36Hibás válasz0/14ms1336 KiB
37Hibás válasz0/13ms1336 KiB
38Hibás válasz0/14ms1176 KiB
39Hibás válasz0/12ms1332 KiB
40Hibás válasz0/13ms1332 KiB