103192024-03-30 17:51:24szilPletykálkodáscpp17Hibás válasz 16/10012ms7500 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]});
			}
			mp[u].clear();
		}
	}
	case1();
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz3ms2540 KiB
2Hibás válasz3ms2824 KiB
3Hibás válasz4ms3100 KiB
subtask20/9
4Hibás válasz3ms2832 KiB
5Hibás válasz3ms3084 KiB
6Elfogadva3ms3280 KiB
subtask30/13
7Hibás válasz7ms4424 KiB
8Hibás válasz8ms4212 KiB
9Hibás válasz8ms4420 KiB
subtask416/16
10Elfogadva7ms4804 KiB
11Elfogadva7ms4892 KiB
12Elfogadva7ms4884 KiB
subtask50/25
13Elfogadva3ms4184 KiB
14Elfogadva3ms4320 KiB
15Elfogadva3ms4208 KiB
16Hibás válasz3ms4348 KiB
17Hibás válasz3ms4508 KiB
18Hibás válasz3ms4600 KiB
19Hibás válasz3ms4564 KiB
subtask60/13
20Elfogadva4ms4936 KiB
21Elfogadva4ms4952 KiB
22Hibás válasz4ms5048 KiB
23Hibás válasz6ms5424 KiB
24Hibás válasz4ms5168 KiB
25Hibás válasz4ms5212 KiB
26Hibás válasz4ms5328 KiB
subtask70/24
27Elfogadva12ms7188 KiB
28Elfogadva12ms7244 KiB
29Hibás válasz12ms7500 KiB
30Hibás válasz12ms7136 KiB
31Hibás válasz10ms6868 KiB
32Hibás válasz9ms6892 KiB
33Hibás válasz9ms6880 KiB
34Hibás válasz9ms6984 KiB
35Hibás válasz10ms7048 KiB
36Hibás válasz9ms7016 KiB
37Hibás válasz9ms6916 KiB