#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"; } |
English