102842024-03-29 23:44:03111Pletykálkodáscpp17Hibás válasz 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz3ms1828 KiB
2Elfogadva3ms2056 KiB
3Hibás válasz282ms2744 KiB
subtask20/9
4Elfogadva3ms2332 KiB
5Hibás válasz2ms2420 KiB
6Hibás válasz3ms2564 KiB
subtask30/13
7Időlimit túllépés1.6s3552 KiB
8Időlimit túllépés1.577s3604 KiB
9Időlimit túllépés1.552s3928 KiB
subtask40/16
10Időlimit túllépés1.56s3076 KiB
11Időlimit túllépés1.552s3268 KiB
12Időlimit túllépés1.557s3468 KiB
subtask50/25
13Hibás válasz4ms3544 KiB
14Hibás válasz4ms3424 KiB
15Hibás válasz4ms3592 KiB
16Hibás válasz7ms3660 KiB
17Hibás válasz6ms3516 KiB
18Hibás válasz4ms3576 KiB
19Hibás válasz4ms3576 KiB
subtask60/13
20Hibás válasz377ms4316 KiB
21Hibás válasz370ms4296 KiB
22Hibás válasz384ms4344 KiB
23Időlimit túllépés1.572s3612 KiB
24Hibás válasz1.133s4740 KiB
25Hibás válasz717ms4516 KiB
26Hibás válasz842ms4456 KiB
subtask70/24
27Időlimit túllépés1.555s5204 KiB
28Időlimit túllépés1.56s5444 KiB
29Időlimit túllépés1.574s5408 KiB
30Időlimit túllépés1.549s5292 KiB
31Időlimit túllépés1.539s5320 KiB
32Időlimit túllépés1.542s5020 KiB
33Időlimit túllépés1.569s5088 KiB
34Időlimit túllépés1.575s5384 KiB
35Időlimit túllépés1.562s5460 KiB
36Időlimit túllépés1.549s5192 KiB
37Időlimit túllépés1.57s5036 KiB