18592022-12-05 18:52:24lacitoÜzletlánccpp11Elfogadva 40/4079ms10872 KiB
#include <bits/stdc++.h>
using namespace std;

vector<vector<int>> ut;

vector<int> szelessegi(int s) {
	vector<int> tav(ut.size());
	vector<bool> volt(ut.size());
	queue<int> varos;
	varos.push(s);
	tav[s] = 0;
	volt[s] = true;
	while (!varos.empty()) {
		int n = varos.front();
		varos.pop();
		for (int i = 0; i < ut[n].size(); i++) {
			int u = ut[n][i];
			if (!volt[u]) {
				varos.push(u);
				tav[u] = tav[n]+1;
				volt[u] = true;
			}
		}
	}
	return tav;
}

int main() {
	int n, m, k, v;
	cin >> n >> m >> k >> v;
	ut.resize(n+1);
	for (int i = 0; i < m; i++) {
		int a, b;
		cin >> a >> b;
		ut[a].push_back(b);
		ut[b].push_back(a);
	}
	vector<int> tk = szelessegi(k);
	vector<int> tv = szelessegi(v);
	vector<pair<int, int>> kulp;
	vector<pair<int, int>> kuln;
	vector<char> mo(n + 1);
	int dba = 0, dbb = 0;
	for (int i = 1; i <= n; i++) {
		if  (tk[i]-tv[i] >= 0) {
			mo[i] = 'B';
			dbb++;
			kuln.push_back({tk[i]-tv[i], i});
		} else {
			mo[i] = 'A';
			dba++;
			kulp.push_back({tv[i]-tk[i], i});
		}
		
	}
	if (dba>dbb) {
		sort(kulp.begin(), kulp.end());
		int x = 0;
		while (dba!=dbb) {
			mo[kulp[x].second] = 'B';
			dba--;
			dbb++;
			x++;
		}
	} else if (dbb > dba) {
		sort(kuln.begin(), kuln.end());
		int x = 0;
		while (dba!=dbb) {
			mo[kuln[x].second] = 'A';
			dba++;
			dbb--;
			x++;
		}
	}
	int ossz = 0;
	for (int i = 1; i <= n; i++) {
		if(mo[i] == 'A') {
			ossz += tk[i];
		} else {
			ossz += tv[i];
		}
	}
	cout << ossz << "\n";
	for (int i = 1; i <= n; i++) {
		cout << mo[i];
	}
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/03ms1812 KiB
2Elfogadva0/02ms2008 KiB
3Elfogadva2/22ms2212 KiB
4Elfogadva2/22ms2412 KiB
5Elfogadva3/32ms2488 KiB
6Elfogadva3/32ms2616 KiB
7Elfogadva2/22ms2692 KiB
8Elfogadva2/22ms2824 KiB
9Elfogadva3/32ms2908 KiB
10Elfogadva3/32ms3032 KiB
11Elfogadva2/28ms4060 KiB
12Elfogadva2/29ms3976 KiB
13Elfogadva3/354ms6244 KiB
14Elfogadva3/37ms4076 KiB
15Elfogadva2/261ms10000 KiB
16Elfogadva2/268ms10120 KiB
17Elfogadva3/346ms10116 KiB
18Elfogadva3/379ms10872 KiB