#include <iostream> #include <vector> #include <set> #include <algorithm> long n,m,a,b; int main() { std::ios_base::sync_with_stdio(0); std::cin.tie(NULL); std::cin>>n; std::vector<std::pair<char,std::pair<int,int>>> res[2]; for(int obr=0;obr<2;obr++){ std::cin>>m; std::vector<std::vector<int> >sa; std::vector<int>prze; std::vector<int>odw; sa.resize(n+1); odw.resize(n+1,0); for(int i=0;i<m;i++){ std::cin>>a>>b; sa[a].emplace_back(b); sa[b].emplace_back(a); } odw[1]=1; prze.emplace_back(1); int i=0; while(i<prze.size()){ for(auto x:sa[prze[i]]) if(odw[x]!=1){ prze.emplace_back(x); odw[x]=1; if(i!=0) res[obr].push_back(std::make_pair('+',std::make_pair(1,x))); } i++; } for(int i=2;i<=n;i++){ for(auto x:sa[i]) if(i<x) res[obr].push_back(std::make_pair('-',std::make_pair(i,x))); } } std::cout<<res[0].size()+res[1].size()<<"\n"; for(int i=0;i<res[0].size();i++){ std::cout<<res[0][i].first<<" "<<res[0][i].second.first<<" "<<res[0][i].second.second<<"\n"; } std::reverse(res[1].begin(),res[1].end()); for(int i=0;i<res[1].size();i++) std::cout<<(res[1][i].first=='+'?'-':'+')<<" "<<res[1][i].second.first<<" "<<res[1][i].second.second<<"\n"; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | #include <iostream> #include <vector> #include <set> #include <algorithm> long n,m,a,b; int main() { std::ios_base::sync_with_stdio(0); std::cin.tie(NULL); std::cin>>n; std::vector<std::pair<char,std::pair<int,int>>> res[2]; for(int obr=0;obr<2;obr++){ std::cin>>m; std::vector<std::vector<int> >sa; std::vector<int>prze; std::vector<int>odw; sa.resize(n+1); odw.resize(n+1,0); for(int i=0;i<m;i++){ std::cin>>a>>b; sa[a].emplace_back(b); sa[b].emplace_back(a); } odw[1]=1; prze.emplace_back(1); int i=0; while(i<prze.size()){ for(auto x:sa[prze[i]]) if(odw[x]!=1){ prze.emplace_back(x); odw[x]=1; if(i!=0) res[obr].push_back(std::make_pair('+',std::make_pair(1,x))); } i++; } for(int i=2;i<=n;i++){ for(auto x:sa[i]) if(i<x) res[obr].push_back(std::make_pair('-',std::make_pair(i,x))); } } std::cout<<res[0].size()+res[1].size()<<"\n"; for(int i=0;i<res[0].size();i++){ std::cout<<res[0][i].first<<" "<<res[0][i].second.first<<" "<<res[0][i].second.second<<"\n"; } std::reverse(res[1].begin(),res[1].end()); for(int i=0;i<res[1].size();i++) std::cout<<(res[1][i].first=='+'?'-':'+')<<" "<<res[1][i].second.first<<" "<<res[1][i].second.second<<"\n"; } |