微软编程之美2013全国挑战赛 资格赛 第1题

来源:互联网 发布:qq变声软件 编辑:程序博客网 时间:2024/05/22 17:36
//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;}