بیا اینم جوابش فقط باید توجه داشته باشی که حتما گراف اولی کامل باشه در غیر اینصورت کلاهشون میره تو کلاهتون
البته توی کد اشتباهاتی که فکر میکردم کاربر امکان داره انجام بده برای وارد کردن گراف جلوشو گرفتم از جمله همین نکته که ممیکنه گراف اولی رو کامل وارد نکنید!!!
دنباله های گراف رو وارد کنید و جواب هم یه دنباله گراف هست
#include<iostream>
#include<cstdarg>
#include<regex>
#include<fstream>
#include<string>
#include<sstream>
#include<vector>
using namespace std;
void split(string,char,vector<unsigned short>&);
int main(){
vector<unsigned short> GK(0,0);
vector<unsigned short> G(0,0);
vector<unsigned short> GT(0,0);
string t;err:
cout << "please enter sequence of complete graph : \n\t";
GK.clear();
getline(cin,t);
split(t,' ',GK);
for(auto i:GK){
if(i!=(unsigned int)GK.size()-1 ){
cout << "\t::.Problem.::\tInserted Graph is not CompeleteGraph.\n" << endl;
goto err;
}
}err1:
G.clear();
cout << "please enter sequence of 2nd graph : \n\t";
getline(cin,t);
split(t,' ',G);
if(G.size()<=1 || G.size()>=GK.size()){
cout << "\t::.Problem.::\tInserted Graph is not valid.\n" << endl;
goto err1;
}
GT=GK;
GT.resize(GK.size()-G.size());
for(unsigned int i=0;i<GT.size();i++){
GT.at(i)=GT.size()-1;
}
cout << "subtract GK - G is : \n";
for(auto i:GT){
cout << i << " ";
}cout << endl;
return 0;
}
void split(string str,char delim,vector<unsigned short> &vec){
stringstream ss(str);
string t;
while(getline(ss,t,delim)){
vec.push_back(atoi(t.c_str()));
}
}