This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "bits/stdc++.h"
using namespace std;
vector<int> v[5];
vector<pair<int,int>> con,all;
int lim = 5 , mi = 1e9 , m;
void rec(int dep){
if(dep>lim)return ;
bool ss = 1;
for(int i = 0;i<m;i++){
if(v[i].size()==1){ss = 0;break;}
if(v[i].size()){
if(v[i][0]!=v[i][1])ss = 0;
}
}
if(ss){
if(mi>dep){
mi =dep;
all.clear();
all = con;
}
return ;
}
for(int i = 0;i<m;i++){
if(v[i].empty())continue;
for(int j = 0;j<m;j++){
if(v[j].size()==2||i==j)continue;
con.push_back({i+1,j+1});
int x = v[i].back();v[i].pop_back();
v[j].push_back(x);
rec(dep+1);
con.pop_back();
x = v[j].back();v[j].pop_back();
v[i].push_back(x);
}
}
}
signed main(){
ios_base::sync_with_stdio(false);cin.tie(0);
int n;
cin>>n>>m;
for(int i = 0;i<m;i++){
int a,b;cin>>a>>b;
if(a!=0)v[i].push_back(a);
if(b!=0)v[i].push_back(b);
}
rec(0);
if(mi==1e9){
cout<<-1<<endl;
return 0;
}
cout<<mi<<endl;
for(auto i:all){
cout<<i.first<<" "<<i.second<<endl;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |