103182024-03-30 17:49:42szilPletykálkodáscpp17Időlimit túllépés 76/1001.557s7488 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);
}

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++) {
		unordered_map<int, vector<int>> mp;
		for (int u : g[i]) {
			for (int v : g[u]) {
				mp[v].emplace_back(u);
			}
		}
		for (auto [u, vec] : mp) {
			if (u == i) continue;
			if (vec.size() >= 2) {
				case2({i, vec[0], u, vec[1]});
			}
		}
	}
	case1();
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva3ms2248 KiB
2Elfogadva3ms2568 KiB
3Elfogadva10ms3180 KiB
subtask29/9
4Elfogadva3ms3124 KiB
5Elfogadva3ms3228 KiB
6Elfogadva3ms3456 KiB
subtask313/13
7Elfogadva30ms4684 KiB
8Elfogadva14ms4540 KiB
9Elfogadva13ms4544 KiB
subtask416/16
10Elfogadva7ms4696 KiB
11Elfogadva8ms4696 KiB
12Elfogadva7ms4692 KiB
subtask525/25
13Elfogadva3ms3724 KiB
14Elfogadva3ms3876 KiB
15Elfogadva3ms3796 KiB
16Elfogadva3ms3924 KiB
17Elfogadva3ms4020 KiB
18Elfogadva4ms3924 KiB
19Elfogadva3ms4032 KiB
subtask613/13
20Elfogadva4ms4548 KiB
21Elfogadva4ms4472 KiB
22Elfogadva4ms4724 KiB
23Elfogadva97ms5184 KiB
24Elfogadva105ms4932 KiB
25Elfogadva177ms4896 KiB
26Elfogadva59ms4928 KiB
subtask70/24
27Elfogadva12ms6280 KiB
28Elfogadva12ms6448 KiB
29Elfogadva12ms6608 KiB
30Időlimit túllépés1.555s4840 KiB
31Időlimit túllépés1.547s4744 KiB
32Időlimit túllépés1.549s4928 KiB
33Időlimit túllépés1.557s5040 KiB
34Időlimit túllépés1.554s5008 KiB
35Elfogadva57ms7380 KiB
36Elfogadva300ms7488 KiB
37Elfogadva13ms6696 KiB