168722025-05-15 07:48:53BucsMatePletykálkodáscpp17Wrong answer 13/10039ms1844 KiB
#include <iostream>
#include <vector>

using namespace std;

const int MAXN = 7001;

vector<vector<int>> adj(MAXN);
vector<pair<int, int>> ans;
bool vis[MAXN];

void dfs(int node) {
	vis[node] = true;
	for (int i = 0; i < adj[node].size(); i++) {
		int newNode = adj[node][i];
		if (!vis[newNode]) {
			dfs(newNode);
			ans.push_back({node, newNode});
		}
	}
}

void solve() {
	dfs(1);
	cout << 2*ans.size()-1 << endl;
	for(int i = 0; i < ans.size(); i++){
        cout << ans[i].first << " " << ans[i].second << endl;
	}
	for(int i = ans.size()-2; i >= 0; i--){
        cout << ans[i].first << " " << ans[i].second << endl;
	}
}

int main() {
	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;
		adj[u].push_back(v);
		adj[v].push_back(u);
	}
	solve();
	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted1ms564 KiB
2Accepted1ms564 KiB
3Wrong answer4ms568 KiB
subtask20/9
4Accepted1ms564 KiB
5Accepted1ms564 KiB
6Wrong answer1ms564 KiB
subtask313/13
7Accepted29ms1024 KiB
8Accepted29ms1072 KiB
9Accepted29ms1024 KiB
subtask40/16
10Wrong answer10ms820 KiB
11Wrong answer10ms1012 KiB
12Wrong answer10ms932 KiB
subtask50/25
13Wrong answer2ms564 KiB
14Wrong answer2ms588 KiB
15Wrong answer2ms564 KiB
16Accepted2ms756 KiB
17Accepted2ms564 KiB
18Accepted2ms568 KiB
19Wrong answer1ms564 KiB
subtask60/13
20Wrong answer8ms680 KiB
21Wrong answer8ms720 KiB
22Wrong answer7ms564 KiB
23Accepted12ms808 KiB
24Accepted8ms564 KiB
25Accepted8ms564 KiB
26Wrong answer8ms568 KiB
subtask70/24
27Wrong answer39ms1588 KiB
28Wrong answer39ms1588 KiB
29Wrong answer39ms1844 KiB
30Accepted39ms1548 KiB
31Accepted37ms1332 KiB
32Accepted34ms1080 KiB
33Accepted32ms1076 KiB
34Accepted34ms1076 KiB
35Wrong answer32ms1332 KiB
36Wrong answer32ms1076 KiB
37Wrong answer34ms1088 KiB