cout<
for(vector
it=Scientists.find(*ite);
if(it!=Scientists.end()){
cout<
else{
cout<<*ite<<" "<
}
}
return 0;
}
#include
#include
#include
#include
using namespace std;
string Erdos="Erdos, P.";
string Scenario="Scenario ";
string Infinity="infinity";
map
void loopFind(map
if(parters.size()<=0)return;
for(int i=0;i
vector
string tmp=parters.at(i);
for(map
vector
vector
vector
if(tmpIndex!=lines.end())break;
else if(it1!=tmpNames.end()){
for(int j=0;j
if(tmp1!=tmp){
Scientists[tmp1]=value;
parter1.push_back(tmp1);
}
}
lines1.push_back(it->first);
}
}
loopFind(map_name,parter1,lines1,value+1);
}
}
void findScientists(map
Scientists[Erdos]=0;
vector
vector
for(map
vector
vector
if(tmp!=names.end()){
for(int i=0;i
if(tmp1!=Erdos){
Scientists[tmp1]=1;
parters.push_back(tmp1);
}
}
lines.push_back(it->first);
}
}
loopFind(map_name,parters,lines,2);
}
void getErdosNumber(vector
int index=1;
map
for(vector
string tmpString=*it;
vector
int begin=0;
int end=0;
if(tmpString.length()<1)continue;
while(end
string tmpName=tmpString.substr(begin,end-begin+1);
tmpSci.push_back(tmpName);
begin=end+3;
end=begin;
}
else if(tmpString[end]==':'){
string tmpName=tmpString.substr(begin,end-begin);
tmpSci.push_back(tmpName);
break;
}
else ++end;
}
map_name[index]=tmpSci;
++index;
}
findScientists(map_name);
}
int main(){
int n=0;
cin>>n;
for(int i=1;i<=n;++i){
int P=0;
int N=0;
cin>>P>>N;
if(P<1||N<1)continue;
getchar();
vector
for(int x=0;x string tmpPaper;
getline(cin,tmpPaper);
paper.push_back(tmpPaper);
}
vector
for(int y=0;y
getline(cin,tmpName);
names.push_back(tmpName);
}
Scientists.clear();
getErdosNumber(paper,names);
cout<
for(vector
it=Scientists.find(*ite);
if(it!=Scientists.end()){
cout<
else{
cout<<*ite<<" "<
}
}
return 0;
}
如果有人知道为什么会是time limit exceeded, 烦请告知,谢谢