<pre name="code" class="cpp">#include <iostream>
#include <string>
#include <map>
using namespace std;
bool isIn(char a,char A[],int size)
{
for(int i=0;i<size;i++)
{
if(A[i]==a)
return true;
}
return false;
}
int main()
{
string s;
cin>>s;
map<char,string> B;
int b=0;
char pre=s[0];
char curr=s[1];
char para[26] ={ '\0'};
char nopara[26]={'\0'};
int a1,a2;
a1=a2=0;
if(curr!=':')
nopara[a2++]=pre;
else
para[a1++]=pre;
pre=curr;
for(int i=2;i<s.size();i++)
{
curr = s[i];
if(curr!=':')
{
if(pre!=':')
nopara[a2++]=pre;
}
else
para[a1++]=pre;
pre=curr;
}
if(curr!=':')
nopara[a2++]=curr;
int n;
cin>>n;
int k=1;
while(n--)
{
B.clear();
cin>>s; //拿到头部
char temp;
temp=getchar();
while(temp==' ')
{
temp=getchar();
temp=getchar();
if(isIn(temp,para,a1))
{
string s2;
cin>>s2;
if(B.find(temp)!=B.end())//存在
B[temp]=s2;
else
B.insert( pair<char,string> (temp,s2));
}
else if(isIn(temp,nopara,a2)&&B.find(temp)==B.end())
{
B.insert(pair<char,string> (temp,"\0"));
}
else
{
string a;
getline(cin,a);
break;
}
temp=getchar();
}
cout<<"Case "<<k++<<": ";
for(map<char,string>::iterator it =B.begin();it!=B.end();it++)
{
if(it->second!="\0")
cout<<'-'<<(char)it->first<<' '<<it->second<<' ';
else
cout<<'-'<<(char)it->first<<' ';
}
cout<<endl;
}
}
//如有纰漏,敬请指教
CCF 命令行选项
最新推荐文章于 2022-01-17 20:43:58 发布