137652025-01-08 17:30:01ercseferencFertőzési sorozat (50 pont)cpp17Hibás válasz 44/5018ms1524 KiB
#include <bits/stdc++.h>
using namespace std;
struct ember{vector<int>kim; int tav[501]={}; bool van;};
bool nov(vector<int>a){
    if(a[0]<1)return false;
    for(int i=1; i<a.size(); i++){
        if(!(a[i]-a[i-1]<2 && a[i]-a[i-1]>=0))return 0;}
    return true;}
bool valid(vector<int>v1){
    int n=v1[0]; int k=0;
    if(n==-1 || n==0)return 0;
    while(v1[k]==n && k<v1.size()){k++;}
    if(k==v1.size())return 1;
    else{
        if(v1[k]!=n+1)return 0;
        else{
            n++;
            while(k<v1.size()){
                if(v1[k]!=n)return 0;
                k++;}}}
    return 1;}
int elso(vector<int>a){
    int i=0;
    while(a[i]==0){i++;}
    return i;}
vector<int>sorba(vector<int>a){
    int c=a[a.size()-1];
    vector<int>b(c+1);
    for(int i=0; i<a.size(); i++){b[a[i]]++;}
    return b;}
int main()
{
    int n,m,k,x,y; //ifstream f("szamok.txt");
    cin>>n>>m>>k;
    int kezd[k]; vector<int>l1,l2; vector<ember>a(n+1);
    for(int i=0; i<k; i++){cin>>kezd[i];}
    for(int i=0; i<m; i++){cin>>x>>y;
        a[x].kim.push_back(y);
        a[y].kim.push_back(x);}
    for(int i=0; i<k; i++){
        l1.clear(); l2.clear(); l1.push_back(kezd[i]);
        for(int j=1; j<=n; j++){a[j].van=0;}
        a[kezd[i]].van=1; int p=1; bool nincs=0;
        a[kezd[i]].tav[kezd[i]]=-1;
        while(!nincs){
            for(int j=0; j<l1.size(); j++){
                for(int v=0; v<a[l1[j]].kim.size(); v++){
                    if(a[a[l1[j]].kim[v]].van==0){
                        l2.push_back(a[l1[j]].kim[v]);
                        a[a[l1[j]].kim[v]].van=1;
                        a[kezd[i]].tav[a[l1[j]].kim[v]]=p;}}}
            if(l2.size()==0)nincs=1;
            l1.clear(); l1=l2; l2.clear(); p++;}}
    vector<int>megold,szamok; int s,maxi,mini;
    for(int i=1; i<=n; i++){
        szamok.clear();
        for(int j=0; j<k; j++){
            szamok.push_back(a[kezd[j]].tav[i]);}
        if(nov(szamok)){
            vector<int>c=sorba(szamok);
            int els=elso(c)+1,uts=c.size()-2,p=1; bool helyes=1;
            l1.clear(); l2.clear(); l1.push_back(i); bool nincs=0;
            for(int j=1; j<=n; j++){a[j].van=0;} a[i].van=1;
            while(!nincs){
                for(int j=0; j<l1.size(); j++){
                    for(int v=0; v<a[l1[j]].kim.size(); v++){
                        if(a[a[l1[j]].kim[v]].van==0){
                            l2.push_back(a[l1[j]].kim[v]);
                            a[a[l1[j]].kim[v]].van=1;}}}
                if(l2.size()==0)nincs=1;
                if(p>=els && p<=uts && l2.size()!=c[p])helyes=0;
                l1.clear(); l1=l2; l2.clear(); p++;}
            if(helyes)megold.push_back(i);}}
    cout<<megold.size()<<endl;
    for(int i=0; i<megold.size(); i++){cout<<megold[i]<<" ";}
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base44/50
1Elfogadva0/01ms508 KiB
2Elfogadva0/01ms316 KiB
3Elfogadva0/04ms820 KiB
4Hibás válasz0/21ms316 KiB
5Elfogadva2/22ms564 KiB
6Elfogadva2/24ms924 KiB
7Elfogadva2/23ms820 KiB
8Elfogadva2/24ms820 KiB
9Hibás válasz0/24ms820 KiB
10Elfogadva2/214ms1332 KiB
11Hibás válasz0/11ms316 KiB
12Elfogadva2/27ms1376 KiB
13Elfogadva2/28ms1424 KiB
14Elfogadva2/26ms1332 KiB
15Elfogadva2/28ms1332 KiB
16Elfogadva2/24ms1276 KiB
17Elfogadva2/23ms1424 KiB
18Elfogadva1/13ms1332 KiB
19Elfogadva1/13ms1332 KiB
20Elfogadva1/14ms1428 KiB
21Elfogadva1/14ms1440 KiB
22Elfogadva1/14ms1332 KiB
23Elfogadva1/14ms1344 KiB
24Elfogadva1/14ms1332 KiB
25Elfogadva1/17ms1448 KiB
26Elfogadva1/14ms1524 KiB
27Elfogadva1/13ms1332 KiB
28Elfogadva1/14ms1428 KiB
29Elfogadva1/13ms1344 KiB
30Elfogadva1/16ms1332 KiB
31Elfogadva1/14ms1432 KiB
32Elfogadva1/14ms1332 KiB
33Hibás válasz0/118ms1452 KiB
34Elfogadva1/14ms1332 KiB
35Elfogadva1/18ms1436 KiB
36Elfogadva1/14ms1416 KiB
37Elfogadva1/13ms1332 KiB
38Elfogadva1/13ms1336 KiB
39Elfogadva1/13ms1436 KiB
40Elfogadva1/110ms1516 KiB