2372 2023. 01. 11 20:21:33 sztomi Üzletlánc cpp11 Elfogadva 40/40 43ms 10844 KiB
#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> pii;

vector<int> bfs(int start, vector<vector<int>>& graf, int n){
    vector<int> ki(n+1, -1);
    vector<bool> volt(n+1, false);
    queue<int> q;
    q.push(start);
    volt[start] = true;
    int akt_meret = 1, kov_meret = 0, tav = 0;
    int akt;
    while(!q.empty()){
        akt = q.front();
        ki[akt] = tav;
        akt_meret--;
        q.pop();

        for(int kov : graf[akt]){
            if(volt[kov]) continue;
            q.push(kov);
            kov_meret++;
            volt[kov] = true;
        }

        if(akt_meret == 0){
            swap(akt_meret, kov_meret);
            tav++;
        }
    }

    return ki;
}

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

    int n, m, r1, r2;
    cin >> n >> m >> r1 >> r2;

    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);
    }

    vector<int> tav1 = bfs(r1, graf, n);
    vector<int> tav2 = bfs(r2, graf, n);
    vector<pii> kul(n);
    for(int i = 1; i <= n; i++){
        kul[i-1] = {tav1[i]-tav2[i], i};
    }

    long long ossz = 0;
    sort(kul.begin(), kul.end());
    vector<char> mo(n+1);
    for(int i = 0; i < n/2; i++){
        ossz += tav1[kul[i].second];
        mo[kul[i].second] = 'A';
    }
    for(int i = n/2; i < n; i++){
        ossz += tav2[kul[i].second];
        mo[kul[i].second] = 'B';
    }
    cout << ossz << "\n";
    for(int i = 1; i <= n; i++){
        cout << mo[i];
    }
    cout << "\n";

}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 3ms 1828 KiB
2 Elfogadva 0/0 2ms 2024 KiB
3 Elfogadva 2/2 2ms 2224 KiB
4 Elfogadva 2/2 2ms 2428 KiB
5 Elfogadva 3/3 2ms 2652 KiB
6 Elfogadva 3/3 2ms 2864 KiB
7 Elfogadva 2/2 2ms 2940 KiB
8 Elfogadva 2/2 2ms 3084 KiB
9 Elfogadva 3/3 2ms 3140 KiB
10 Elfogadva 3/3 2ms 3124 KiB
11 Elfogadva 2/2 4ms 3884 KiB
12 Elfogadva 2/2 7ms 4204 KiB
13 Elfogadva 3/3 24ms 6256 KiB
14 Elfogadva 3/3 4ms 4280 KiB
15 Elfogadva 2/2 35ms 9836 KiB
16 Elfogadva 2/2 39ms 9984 KiB
17 Elfogadva 3/3 26ms 9604 KiB
18 Elfogadva 3/3 43ms 10844 KiB