//source here #include<iostream> #include<map> #include<string> #include<string.h> using namespace std; int main(){ int m, n; int cases; cin>>cases; for(int t = 0; t < cases; t++){ map<string, string> yingshe; cin>>m>>n; string temp = ""; for(int i = 0; i < n; i++){ cin>>temp; cin>>yingshe[temp]; } string juzi[105]; char duihua[205]; cin.getline(duihua, 10, '\n');//接收当前所在行的尾部结束标记 cin.getline(duihua, 105, '\n'); if(yingshe.empty()){ cout<<"Case #"<<t + 1<<": "<<duihua<<endl; continue; } char delims[] = " "; char *result = NULL; result = strtok( duihua, delims ); int index = 0; while( result != NULL ){ //不会是空字符,所以index至少是1. //故下面不要对index进行合法性检查 juzi[index] = (string)(result); index++; result = strtok( NULL, delims ); } map<string, string>::iterator it; for(int i = 0; i < index; i++){ for(int j = 0; j < m - 1; j++){ it = yingshe.find(juzi[i]); if(it != yingshe.end()){ juzi[i] = yingshe[juzi[i]]; }else{ break; } } } cout<<"Case #"<<t + 1<<": "; for(int i = 0; i < index - 1; i++){ cout<<juzi[i]<<" "; } cout<<juzi[index - 1]<<endl; } //system("pause"); return 0; }
微软编程之美2013全国挑战赛 资格赛 第1题
最新推荐文章于 2021-02-05 16:35:32 发布