试一试把getline后的string的最后一个字符去掉。
for(int i=1;i<=p;i++){
string s,t;
cin>>t;
t.erase(t.end()-1);
belong[i]=mapi[t];
getline(cin,say[i]);
say[i].erase(say[i].begin());
//say[i].erase(say[i].end()-1);
//这句注释掉本地过,不注释掉洛谷过
//cout<<say[i]<<" "<<belong[i]<<endl;
}