玄关,求调
查看原帖
玄关,求调
1387512
caozhihan楼主2025/1/22 10:15
#include <bits/stdc++.h>
using namespace std;
map<string,set<string> > m;
int n;

int main()
{
	
	cin>>n;
	for(int i=0;i<=n;i++)
	{
	    
		string x,p;
		getline(cin,x);
		x+=' ';
		int ls=0;
        for(int j=0;j<x.size();j++)
        {
        	if(x[j]==' ')
        	{
        		if(ls==0)
        		{
        			p=x.substr(ls,j-ls);
        			ls=j+1;
				}
				else 
				{
					string u;
					u=x.substr(ls,j-ls);
					for(int k=0;k<u.size();k++)
					{
						if(u[k]>='A'&&u[k]<='Z') u[k]+=32;
					}
					m[p].insert(u); 
					ls=j+1;
				}
			}
		}
	}

	string s;
	getline(cin,s);
	while(getline(cin,s))
	{
		if(s=="") break;
        s+=' ';
		string x,p;
		int ls=0;
		for(int i=0;i<s.size();i++)
		{
			
			if(s[i]>='A'&&s[i]<='Z') s[i]+=32;
		}

		bool f=0; 
		for(int i=0;i<s.size();i++)
		{
			
			if(s[i]=='.'||s[i]==','||s[i]=='?'||s[i]=='!'||s[i]==';'||s[i]=='('||s[i]==')'||s[i]==' ')
			{
				p=s.substr(ls,i-ls);
				if(i<s.size()-1) ls=i+1;
				map<string,set<string> >::iterator it;
				for(it=m.begin();it!=m.end();it++)
				{
					if((it->second).count(p)) 
				    {
				    	f=1;
				    	cout<<it->first<<endl;
				    	break;
					}
				}
			} 
			if(f) break;
		}

	}
	return 0;
}
2025/1/22 10:15
加载中...