102842024-03-29 23:44:03111Pletykálkodáscpp17Wrong answer 0/1001.6s5460 KiB
#include <bits/stdc++.h>
using namespace std;

#define int long long

signed main(){
	ios::sync_with_stdio(false);
	cin.tie(nullptr);
	int N,M;
	cin>>N>>M;
	vector<vector<int>>g(N+1);
	vector<pair<int,int>>e;
	for(int i=0;i<M;i++){
		int a,b;
		cin>>a>>b;
		g[a].push_back(b);
		g[b].push_back(a);
		e.emplace_back(a,b);
	}
	vector<pair<int,int>>ans(N*2);
	for(auto[a,b]:e){
		vector<int>v(N+1,-1);
		vector<vector<pair<int,int>>>w(2);
		auto dfs=[&](auto self,int i)->void{
			for(int j:g[i]){
				if(v[j]!=-1){
					continue;
				}
				v[j]=v[i];
				w[v[i]].emplace_back(i,j);
				self(self,j);
			}
		};
		v[a]=0;
		v[b]=1;
		int aaa=-1,bbb=-1;
		for(int aa:g[a]){
			for(int bb:g[b]){
				int ok=0;
				for(int i:g[aa]){
					if(i==bb){
						ok=1;
					}
				}
				if(ok){
					aaa=aa;
					bbb=bb;
				}
			}
		}
		if(aaa!=-1){
			v[aaa]=0;
			v[bbb]=1;
			dfs(dfs,aaa);
			dfs(dfs,bbb);
			if(count(v.begin(),v.end(),-1)>1){
				continue;
			}
			vector<pair<int,int>>s;
			for(auto[a,b]:w[0]){
				s.emplace_back(a,b);
			}
			for(auto[a,b]:w[1]){
				s.emplace_back(a,b);
			}
			s.emplace_back(a,aaa);
			s.emplace_back(b,bbb);
			s.emplace_back(a,b);
			s.emplace_back(aaa,bbb);
			reverse(w[0].begin(),w[0].end());
			reverse(w[1].begin(),w[1].end());
			for(auto[a,b]:w[0]){
				s.emplace_back(a,b);
			}
			for(auto[a,b]:w[1]){
				s.emplace_back(a,b);
			}
			if(s.size()<ans.size()){
				ans=s;
			}
		}
		fill(v.begin(),v.end(),-1);
		w[0].clear();
		w[1].clear();
		v[a]=0;
		v[b]=1;
		dfs(dfs,a);
		dfs(dfs,b);
		vector<pair<int,int>>s;
		for(auto[a,b]:w[0]){
			s.emplace_back(a,b);
		}
		for(auto[a,b]:w[1]){
			s.emplace_back(a,b);
		}
		s.emplace_back(a,b);
		reverse(w[0].begin(),w[0].end());
		reverse(w[1].begin(),w[1].end());
		for(auto[a,b]:w[0]){
			s.emplace_back(a,b);
		}
		for(auto[a,b]:w[1]){
			s.emplace_back(a,b);
		}
		if(s.size()<ans.size()){
			ans=s;
		}
	}
	cout<<ans.size()<<'\n';
	for(auto[a,b]:ans){
		cout<<a<<' '<<b<<'\n';
	}
	return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Wrong answer3ms1828 KiB
2Accepted3ms2056 KiB
3Wrong answer282ms2744 KiB
subtask20/9
4Accepted3ms2332 KiB
5Wrong answer2ms2420 KiB
6Wrong answer3ms2564 KiB
subtask30/13
7Time limit exceeded1.6s3552 KiB
8Time limit exceeded1.577s3604 KiB
9Time limit exceeded1.552s3928 KiB
subtask40/16
10Time limit exceeded1.56s3076 KiB
11Time limit exceeded1.552s3268 KiB
12Time limit exceeded1.557s3468 KiB
subtask50/25
13Wrong answer4ms3544 KiB
14Wrong answer4ms3424 KiB
15Wrong answer4ms3592 KiB
16Wrong answer7ms3660 KiB
17Wrong answer6ms3516 KiB
18Wrong answer4ms3576 KiB
19Wrong answer4ms3576 KiB
subtask60/13
20Wrong answer377ms4316 KiB
21Wrong answer370ms4296 KiB
22Wrong answer384ms4344 KiB
23Time limit exceeded1.572s3612 KiB
24Wrong answer1.133s4740 KiB
25Wrong answer717ms4516 KiB
26Wrong answer842ms4456 KiB
subtask70/24
27Time limit exceeded1.555s5204 KiB
28Time limit exceeded1.56s5444 KiB
29Time limit exceeded1.574s5408 KiB
30Time limit exceeded1.549s5292 KiB
31Time limit exceeded1.539s5320 KiB
32Time limit exceeded1.542s5020 KiB
33Time limit exceeded1.569s5088 KiB
34Time limit exceeded1.575s5384 KiB
35Time limit exceeded1.562s5460 KiB
36Time limit exceeded1.549s5192 KiB
37Time limit exceeded1.57s5036 KiB