7423 | 2024. 01. 08 19:53:08 | horvathabel | Üzletlánc | cpp17 | Elfogadva 40/40 | 82ms | 13604 KiB |
#include <bits/stdc++.h>
using namespace std;
vector<int>g[40001];
vector<int> tava(40001,0);
vector<int> tavb(40001,0);
void bfsa(int x, int n){
queue<int>q;
vector<bool> seen;
seen.resize(n+1,0);
q.push(x);
seen[x]=true;
tava[x]=0;
while(!q.empty()){
int v=q.front();
q.pop();
for (int edge:g[v]){
if (!seen[edge]){
tava[edge]=tava[v]+1;
seen[edge]=true;
q.push(edge);
}
}
}
}
void bfsb(int x, int n){
tavb[x]=0;
queue<int>q;
vector<bool> seen;
seen.resize(n+1,0);
q.push(x);
seen[x]=true;
while(!q.empty()){
int v=q.front();
q.pop();
for (int edge:g[v]){
if (!seen[edge]){
tavb[edge]=tavb[v]+1;
seen[edge]=true;
q.push(edge);
}
}
}
}
int main()
{
int n,m,a,b;
cin>>n>>m>>a>>b;
for (int i=0; i<m;i++){
int x,y;
cin>>x>>y;
g[x].push_back(y);
g[y].push_back(x);
}
bfsa(a,n);
bfsb(b,n);
vector<pair<int,int>> diff;
int ans=0;
vector<string> answer;
answer.resize(n+1,"A");
diff.resize(n+1,{1000000000,0});
for (int i=1; i<=n;i++){
diff[i]={tavb[i]-tava[i],i};
ans+=tava[i];
}
sort(diff.begin(),diff.end());
for (int i=0; i<n/2;i++){
ans+=diff[i].first;
answer[diff[i].second]="B";
}
cout<<ans<<endl;
for (int i=1; i<=n;i++) cout<<answer[i];
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 4ms | 4260 KiB | |||
2 | Elfogadva | 0/0 | 4ms | 4512 KiB | |||
3 | Elfogadva | 2/2 | 4ms | 4752 KiB | |||
4 | Elfogadva | 2/2 | 4ms | 4916 KiB | |||
5 | Elfogadva | 3/3 | 4ms | 5404 KiB | |||
6 | Elfogadva | 3/3 | 4ms | 5196 KiB | |||
7 | Elfogadva | 2/2 | 4ms | 5196 KiB | |||
8 | Elfogadva | 2/2 | 4ms | 5436 KiB | |||
9 | Elfogadva | 3/3 | 4ms | 5820 KiB | |||
10 | Elfogadva | 3/3 | 4ms | 6040 KiB | |||
11 | Elfogadva | 2/2 | 8ms | 6664 KiB | |||
12 | Elfogadva | 2/2 | 12ms | 7244 KiB | |||
13 | Elfogadva | 3/3 | 57ms | 9092 KiB | |||
14 | Elfogadva | 3/3 | 8ms | 7284 KiB | |||
15 | Elfogadva | 2/2 | 65ms | 12808 KiB | |||
16 | Elfogadva | 2/2 | 75ms | 12996 KiB | |||
17 | Elfogadva | 3/3 | 48ms | 12608 KiB | |||
18 | Elfogadva | 3/3 | 82ms | 13604 KiB |