#include <bits/stdc++.h>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie();
cout.tie();
struct lolz{
char c;
int a;
int b;
}typedef lolz;
map<pair<int,int>,bool> mp;
map<pair<int,int>,bool> mp2;
vector<pair<int,int>> E;
vector<lolz> S;
int n;cin>>n;
int m1;cin>>m1;
vector <int> v;
vector < vector<int> >V1(n+1,v);
for(int i=0;i<m1;i++){
int a,b;cin>>a>>b;
pair<int,int> p;p.first=a;p.second=b;
E.push_back(p);
mp[p]=true;
V1[a].push_back(b);
V1[b].push_back(a);
}
sort(V1[1].begin(),V1[1].end());
auto it=V1[1].begin();
for(int i=2;i<=n;i++){
if(it==V1[1].end() or *it>i){
S.push_back((lolz){'+',1,i});//"+ 1 "+to_string(i)+"\n");
pair<int,int> p;p.first=1;p.second=i;
mp[p]=true;
E.push_back(p);
}
else it++;
}
for(int i=2;i<=n;i++)v.push_back(i);
V1[1]=v;v.clear();
int m2;cin>>m2;
vector < vector<int> >V2(n+1,v);
for(int i=0;i<m2;i++){
int a,b;cin>>a>>b;
V2[a].push_back(b);
V2[b].push_back(a);
pair<int,int> p1;p1.first=a;p1.second=b;
pair<int,int> p2;p2.first=b;p2.second=a;
mp2[p1]=true;mp2[p2]=true;
if(!mp.count(p1) and !mp.count(p2)){
S.push_back((lolz){'+',a,b});//"+ "+to_string(a)+" "+to_string(b)+"\n");
}
}
for(int i=0;i<E.size();i++){
if(!mp2.count(E[i])) S.push_back((lolz){'-',E[i].first,E[i].second});//"- "+to_string(E[i].first)+" "+to_string(E[i].second)+"\n");
}
cout<<S.size()<<"\n";
for(int i=0;i<S.size();i++)cout<<S[i].c<<" "<<S[i].a<<" "<<S[i].b<<"\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 56 57 58 59 60 61 62 63 64 65 | #include <bits/stdc++.h> using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(); cout.tie(); struct lolz{ char c; int a; int b; }typedef lolz; map<pair<int,int>,bool> mp; map<pair<int,int>,bool> mp2; vector<pair<int,int>> E; vector<lolz> S; int n;cin>>n; int m1;cin>>m1; vector <int> v; vector < vector<int> >V1(n+1,v); for(int i=0;i<m1;i++){ int a,b;cin>>a>>b; pair<int,int> p;p.first=a;p.second=b; E.push_back(p); mp[p]=true; V1[a].push_back(b); V1[b].push_back(a); } sort(V1[1].begin(),V1[1].end()); auto it=V1[1].begin(); for(int i=2;i<=n;i++){ if(it==V1[1].end() or *it>i){ S.push_back((lolz){'+',1,i});//"+ 1 "+to_string(i)+"\n"); pair<int,int> p;p.first=1;p.second=i; mp[p]=true; E.push_back(p); } else it++; } for(int i=2;i<=n;i++)v.push_back(i); V1[1]=v;v.clear(); int m2;cin>>m2; vector < vector<int> >V2(n+1,v); for(int i=0;i<m2;i++){ int a,b;cin>>a>>b; V2[a].push_back(b); V2[b].push_back(a); pair<int,int> p1;p1.first=a;p1.second=b; pair<int,int> p2;p2.first=b;p2.second=a; mp2[p1]=true;mp2[p2]=true; if(!mp.count(p1) and !mp.count(p2)){ S.push_back((lolz){'+',a,b});//"+ "+to_string(a)+" "+to_string(b)+"\n"); } } for(int i=0;i<E.size();i++){ if(!mp2.count(E[i])) S.push_back((lolz){'-',E[i].first,E[i].second});//"- "+to_string(E[i].first)+" "+to_string(E[i].second)+"\n"); } cout<<S.size()<<"\n"; for(int i=0;i<S.size();i++)cout<<S[i].c<<" "<<S[i].a<<" "<<S[i].b<<"\n"; } |
English