53562023-04-26 12:07:55sztomiPletykacpp11Hibás válasz 63/10089ms33428 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int n, m, k;
    cin >> n >> m >> k;
    vector<int> kezd(k);
    vector<bool> parosban(n+1, false);
    vector<bool> paratlanban(n+1, false);
    for(int &x : kezd){
        cin >> x;
        parosban[x] = true;
    }
    vector<vector<int>> graf(n+1, vector<int>());
    int a, b;
    for(int i = 0; i < m; i++){
        cin >> a >> b;
        graf[a].push_back(b);
        graf[b].push_back(a);
    }


    queue<int> ujak;
    for(int x : kezd){
        ujak.push(x);
    }


    int ido = 0;
    int ptl_db = 0, ps_db = k;
    int akt;
    int reteg_meret = k, kov_reteg_meret = 0;
    vector<int> mo;
    while(!ujak.empty()){
        akt = ujak.front();
        //cout << "akt: " << akt << " ido: " << ido << " ptl_db: " << ptl_db << " ps_db: " << ps_db << "\n";
        ujak.pop();
        reteg_meret--;

        if(ido % 2){
            for(int kov : graf[akt]){
                if(parosban[kov]) continue;
                parosban[kov] = true;
                ps_db++;
                ujak.push(kov);
                kov_reteg_meret++;
            }
        }
        else{
            for(int kov : graf[akt]){
                if(paratlanban[kov]) continue;
                paratlanban[kov] = true;
                ptl_db++;
                ujak.push(kov);
                kov_reteg_meret++;
            }
        }

        if(reteg_meret == 0){
            mo.push_back((ido % 2 ? ptl_db : ps_db));
            ido++;
            swap(reteg_meret, kov_reteg_meret);
        }
    }

    int db = max(ptl_db, ps_db);
    cout << db << "\n";
    vector<int> temp;
    for(int x : mo){
        temp.push_back(x);
        if(x == db) break;
    }
    cout << temp.size() << "\n";
    for(int x : temp){
        cout << x << " ";
    }
    cout << "\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base63/100
1Elfogadva0/03ms2012 KiB
2Hibás válasz0/017ms6296 KiB
3Elfogadva2/23ms2964 KiB
4Részben helyes1/23ms3124 KiB
5Hibás válasz0/23ms3288 KiB
6Hibás válasz0/24ms3880 KiB
7Elfogadva4/44ms4056 KiB
8Hibás válasz0/47ms4920 KiB
9Elfogadva4/47ms5100 KiB
10Elfogadva4/46ms5172 KiB
11Hibás válasz0/417ms8396 KiB
12Elfogadva4/416ms8728 KiB
13Részben helyes2/425ms11704 KiB
14Hibás válasz0/427ms12544 KiB
15Hibás válasz0/637ms16040 KiB
16Elfogadva6/637ms16748 KiB
17Hibás válasz0/646ms20288 KiB
18Elfogadva6/650ms21340 KiB
19Elfogadva6/648ms23008 KiB
20Hibás válasz0/648ms24312 KiB
21Elfogadva6/650ms25472 KiB
22Elfogadva6/654ms27348 KiB
23Elfogadva6/689ms30912 KiB
24Elfogadva6/689ms33428 KiB