65562023-12-09 15:04:14horvathabelÜzletlánccpp17Wrong answer 13/4076ms17344 KiB
#include <bits/stdc++.h>
using namespace std;
vector<int> g[40001];
queue<pair<int,int>> qa;
queue<pair<int,int>> qb;
vector<int> tav;
vector<bool> seen;
void bfsa(int a){
    queue<int> q;
    tav[a]=0;
    q.push(a);
    seen[a]=true;
    while (!q.empty()){
        int v=q.front();
        q.pop();
        qa.push({v,tav[v]});
        for (int edge:g[v]){
            if (!seen[edge]){
                q.push(edge);
                seen[edge]=true;
                tav[edge]=tav[v]+1;

            }
        }
    }
}
void bfsb(int a){
    queue<int> q;
    tav[a]=0;
    q.push(a);
    seen[a]=true;
    while (!q.empty()){
        int v=q.front();
        q.pop();
        qb.push({v,tav[v]});
        for (int edge:g[v]){
            if (!seen[edge]){
                q.push(edge);
                seen[edge]=true;
                tav[edge]=tav[v]+1;

            }
        }
    }
}
int main()
{
    int n,m,a,b;
    cin>>n>>m>>a>>b;
    for (int i=0; i<m;i++){
        int a,b;
        cin>>a>>b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    tav.resize(n+1,0);
    seen.resize(n+1,0);
    bfsa(a);
    tav.clear();
    seen.clear();
    tav.resize(n+1,0);
    seen.resize(n+1,0);
    bfsb(b);
    seen.clear();
    seen.resize(n+1,0);
    int cnt=0;
    int ans=0;
    vector<string> ct;
    ct.resize(n+1);
    while (cnt!=n/2){
        while (seen[qa.front().first]){
            qa.pop();
        }
        ans+=qa.front().second;
        seen[qa.front().first]=true;
        ct[qa.front().first]="A";
        qa.pop();
        while (seen[qb.front().first]){
            qb.pop();
        }
        ans+=qb.front().second;
        seen[qb.front().first]=true;
        ct[qb.front().first]="B";
        qb.pop();
        cnt++;
    }
    cout<<ans<<endl;
    for (int i=1; i<=n;i++) cout<<ct[i];
}
SubtaskSumTestVerdictTimeMemory
base13/40
1Accepted0/04ms3708 KiB
2Wrong answer0/03ms3916 KiB
3Accepted2/24ms4140 KiB
4Wrong answer0/23ms4464 KiB
5Accepted3/33ms4680 KiB
6Wrong answer0/33ms4644 KiB
7Accepted2/24ms4896 KiB
8Wrong answer0/24ms5124 KiB
9Accepted3/34ms5344 KiB
10Accepted3/33ms5588 KiB
11Wrong answer0/28ms6296 KiB
12Wrong answer0/210ms6708 KiB
13Wrong answer0/354ms9192 KiB
14Wrong answer0/38ms7412 KiB
15Wrong answer0/259ms14588 KiB
16Wrong answer0/268ms15772 KiB
17Wrong answer0/341ms15676 KiB
18Wrong answer0/376ms17344 KiB