102932024-03-30 10:42:22111Pletykálkodáscpp17Hibás válasz 0/10057ms11844 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<tuple<int,int,int,int>>c;
	for(int i=1;i<=N;i++){
		vector<int>v(N+1);
		v[i]=-1;
		for(int j:g[i]){
			v[j]=-1;
		}
		for(int j:g[i]){
			for(int k:g[j]){
				if(v[k]<0){
					continue;
				}
				if(v[k]>0){
					c.emplace_back(i,k,j,v[k]);
					continue;
				}
				v[k]=j;
			}
		}
	}
	for(auto[a,b,aa,bb]:c){
		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];
				self(self,j);
				w[v[i]].emplace_back(i,j);
			}
		};
		v[a]=0;
		v[b]=1;
		v[aa]=0;
		v[bb]=1;
		dfs(dfs,aa);
		dfs(dfs,bb);
		if(count(v.begin(),v.end(),-1)==1){
			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,aa);
			s.emplace_back(b,bb);
			s.emplace_back(a,b);
			s.emplace_back(aa,bb);
			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);
			}
			vector<bitset<1501>>v(N+1);
			for(int i=1;i<=N;i++)v[i][i]=1;
			for(auto[a,b]:s){
				v[a]=v[b]=v[a]|v[b];
			}
			int k=1;
			while(k<=N&&v[k].count()==N)k++;
			if(k<=N){
				exit(1);
			}
			cout<<s.size()<<'\n';
			for(auto[a,b]:s){
				cout<<a<<' '<<b<<'\n';
			}
			return 0;
		}
	}
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Hibás válasz3ms1700 KiB
2Hibás válasz3ms1936 KiB
3Hibás válasz4ms2952 KiB
subtask20/9
4Hibás válasz3ms2360 KiB
5Hibás válasz3ms2564 KiB
6Hibás válasz3ms2736 KiB
subtask30/13
7Hibás válasz14ms4120 KiB
8Hibás válasz19ms4080 KiB
9Hibás válasz19ms4232 KiB
subtask40/16
10Hibás válasz14ms5212 KiB
11Hibás válasz16ms5420 KiB
12Hibás válasz14ms5520 KiB
subtask50/25
13Hibás válasz3ms3956 KiB
14Hibás válasz3ms4268 KiB
15Hibás válasz3ms4192 KiB
16Hibás válasz3ms4084 KiB
17Hibás válasz3ms4064 KiB
18Hibás válasz3ms4272 KiB
19Hibás válasz3ms4560 KiB
subtask60/13
20Hibás válasz4ms5780 KiB
21Hibás válasz9ms5068 KiB
22Hibás válasz4ms5776 KiB
23Hibás válasz8ms5720 KiB
24Hibás válasz6ms5420 KiB
25Hibás válasz4ms5212 KiB
26Hibás válasz7ms6096 KiB
subtask70/24
27Futási hiba26ms11844 KiB
28Futási hiba34ms11784 KiB
29Futási hiba26ms11804 KiB
30Hibás válasz35ms7320 KiB
31Hibás válasz39ms6816 KiB
32Hibás válasz43ms6508 KiB
33Hibás válasz50ms6496 KiB
34Hibás válasz57ms6312 KiB
35Futási hiba41ms11120 KiB
36Futási hiba48ms10800 KiB
37Futási hiba54ms10568 KiB