103202024-03-30 17:52:02szilPletykálkodáscpp17Elfogadva 100/100405ms7252 KiB
#include <bits/stdc++.h>

using namespace std;
using ll = long long;

const int MAXN = 7001;

vector<int> g[MAXN];
vector<pair<int, int>> ans1, ans2;
bool vis[MAXN];

void dfs(int u) {
	vis[u] = true;
	for (int v : g[u]) {
		if (!vis[v]) {
			dfs(v);
			ans1.emplace_back(u, v);
		}
	}
}

void print_ans() {
	int k = ans1.size() + ans2.size();
	cout << k << "\n";
	for (auto [u, v] : ans1) {
		cout << u << " " << v << "\n";
	}
	for (auto [u, v] : ans2) {
		cout << u << " " << v << "\n";
	}
}

void case1() {
	dfs(1);
	ans2 = ans1;
	ans2.pop_back();
	reverse(ans2.begin(), ans2.end());
	print_ans();
	exit(0);
}

void case2(vector<int> cyc) {
	for (int i : cyc) vis[i] = true;
	for (int i : cyc) {
		dfs(i);
	}
	ans2 = ans1;
	ans1.emplace_back(cyc[0], cyc[1]);
	ans1.emplace_back(cyc[2], cyc[3]);
	ans1.emplace_back(cyc[0], cyc[3]);
	ans1.emplace_back(cyc[1], cyc[2]);
	reverse(ans2.begin(), ans2.end());
	print_ans();
	exit(0);
}

vector<int> mp[MAXN];

int main() {
	ios::sync_with_stdio(0); cin.tie(0);
	int n, m; cin >> n >> m;
	if (n == 1) {
		cout << "0\n";
		return 0;
	}
	for (int i = 0; i < m; i++) {
		int u, v; cin >> u >> v;
		g[u].emplace_back(v);
		g[v].emplace_back(u);
	}
	for (int i = 1; i <= n; i++) {
		for (int u : g[i]) {
			for (int v : g[u]) {
				mp[v].emplace_back(u);
			}
		}
		for (int u = 1; u <= n; u++) {
			if (u == i) continue;
			if (mp[u].size() >= 2) {
				case2({i, mp[u][0], u, mp[u][1]});
			}
		}
		for (int u = 1; u <= n; u++) {
			mp[u].clear();
		}
	}
	case1();
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2540 KiB
2Elfogadva3ms2820 KiB
3Elfogadva4ms3276 KiB
subtask29/9
4Elfogadva3ms3312 KiB
5Elfogadva3ms3196 KiB
6Elfogadva3ms3196 KiB
subtask313/13
7Elfogadva133ms4744 KiB
8Elfogadva131ms4908 KiB
9Elfogadva130ms5096 KiB
subtask416/16
10Elfogadva7ms4804 KiB
11Elfogadva7ms4808 KiB
12Elfogadva7ms4720 KiB
subtask525/25
13Elfogadva3ms3756 KiB
14Elfogadva3ms3764 KiB
15Elfogadva3ms4012 KiB
16Elfogadva3ms3972 KiB
17Elfogadva3ms4232 KiB
18Elfogadva3ms4444 KiB
19Elfogadva3ms4396 KiB
subtask613/13
20Elfogadva4ms4656 KiB
21Elfogadva4ms4920 KiB
22Elfogadva4ms4952 KiB
23Elfogadva19ms5484 KiB
24Elfogadva16ms5120 KiB
25Elfogadva16ms5040 KiB
26Elfogadva6ms5240 KiB
subtask724/24
27Elfogadva12ms6828 KiB
28Elfogadva12ms6740 KiB
29Elfogadva12ms6840 KiB
30Elfogadva294ms7252 KiB
31Elfogadva349ms7064 KiB
32Elfogadva405ms6708 KiB
33Elfogadva402ms6552 KiB
34Elfogadva375ms6468 KiB
35Elfogadva17ms6692 KiB
36Elfogadva39ms6652 KiB
37Elfogadva9ms6496 KiB