95 2021. 01. 11 22:32:47 Babják Péter Üzletlánc cpp11 Elfogadva 40/40 41ms 18584 KiB
#include <bits/stdc++.h>
#define N 200001
using namespace std;
int A[N];
int B[N];
bool volt[N];
bool volt2[N];
vector<int>adj[N];
bool e=0;
void bfs(int z)
{
	vector<int>sor;
	sor.push_back(z);
	for(int i=0;i<sor.size();i++)
	{
		int v=sor[i];
		for(int u: adj[v])
		{
			if(volt[u]==0)
			{
				A[u]=A[v]+1;
				sor.push_back(u);
				volt[u]=1;
			}
		}
	}
}
void bfs2(int z)
{
	vector<int>sor;
	sor.push_back(z);
	for(int i=0;i<sor.size();i++)
	{
		int v=sor[i];
		for(int u: adj[v])
		{
			if(volt2[u]==0)
			{
				B[u]=B[v]+1;
				sor.push_back(u);
				volt2[u]=1;
			}
		}
	}
}
struct pen
{
	int val;
	int ind;	
};
struct cmp
{
	bool operator()(const pen &a,const pen &b)
	{
		return a.val<b.val;
	}	
};
int main()
{
	int n,m,a,b;
	ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
	cin>>n>>m>>a>>b;a--;b--;
	A[a]=0;
	B[b]=0;
	for(int i=0;i<m;i++)
	{
		int c,d;cin>>c>>d;c--;d--;
		adj[c].push_back(d);
		adj[d].push_back(c);
	}
	volt[a]=1;
	bfs(a);
	volt2[b]=1;
	bfs2(b);
	pen p[n];
	for(int i=0;i<n;i++)
	{
		pen g;
		g.ind=i;
		g.val=A[i]-B[i];
		p[i]=g;
	}
	sort(p,p+n,cmp());
	
	bool ch[n];
	int sum=0;
	for(int i=0;i<n/2;i++)
	{
		ch[p[i].ind]=0;
		sum+=A[p[i].ind];
	}
	for(int i=n/2;i<n;i++)
	{
		ch[p[i].ind]=1;
		sum+=B[p[i].ind];
	}
	cout<<sum<<endl;
	char t[2]={'A','B'};
	for(int i=0;i<n;i++)
	{
		cout<<t[ch[i]];
	}
	return 0;
}
Részfeladat Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 6ms 11176 KiB
2 Elfogadva 0/0 4ms 11228 KiB
3 Elfogadva 2/2 6ms 11148 KiB
4 Elfogadva 2/2 4ms 11148 KiB
5 Elfogadva 3/3 4ms 11280 KiB
6 Elfogadva 3/3 4ms 11228 KiB
7 Elfogadva 2/2 4ms 11284 KiB
8 Elfogadva 2/2 4ms 11292 KiB
9 Elfogadva 3/3 6ms 11292 KiB
10 Elfogadva 3/3 4ms 11284 KiB
11 Elfogadva 2/2 8ms 11892 KiB
12 Elfogadva 2/2 8ms 12116 KiB
13 Elfogadva 3/3 27ms 14688 KiB
14 Elfogadva 3/3 7ms 12644 KiB
15 Elfogadva 2/2 34ms 17012 KiB
16 Elfogadva 2/2 41ms 17988 KiB
17 Elfogadva 3/3 25ms 17652 KiB
18 Elfogadva 3/3 41ms 18584 KiB