NBUT - 1220 SPY

题目衔接:https://ac.2333.moe/Problem/view.xhtml?id=1220

  • [1220] SPY

  • 时间限制: 1000 ms 内存限制: 131072 K
  • 问题描述
  • The National Intelligence Council of X Nation receives a piece of credible information that Nation Y will send spies to steal Nation X’s confidential paper. So the commander of The National Intelligence Council take measures immediately, he will investigate people who will come into NationX. At the same time, there are two List in the Commander’s hand, one is full of spies that Nation Y will send to Nation X, and the other one is full of spies that Nation X has sent to Nation Y before. There may be some overlaps of the two list. Because the spy may act two roles at the same time, which means that he may be the one that is sent from Nation X to Nation Y, we just call this type a “dual-spy”. So Nation Y may send “dual_spy” back to Nation X, and it is obvious now that it is good for Nation X, because “dual_spy” may bring back NationY’s confidential paper without worrying to be detention by NationY’s frontier So the commander decides to seize those that are sent by NationY, and let the ordinary people and the “dual_spy” in at the same time .So can you decide a list that should be caught by the Commander?

    A:the list contains that will come to the NationX’s frontier.

    B:the list contains spies that will be sent by Nation Y.

    C:the list contains spies that were sent to NationY before.

  • 输入
  • There are several test cases.
    Each test case contains four parts, the first part contains 3 positive integers A, B, C, and A is the number which will come into the frontier. B is the number that will be sent by Nation Y, and C is the number that NationX has sent to NationY before.
    The second part contains A strings, the name list of that will come into the frontier.
    The second part contains B strings, the name list of that are sent by NationY.
    The second part contains C strings, the name list of the “dual_spy”.
    There will be a blank line after each test case.
    There won’t be any repetitive names in a single list, if repetitive names appear in two lists, they mean the same people.

  • 输出
  • Output the list that the commander should caught (in the appearance order of the lists B).if no one should be caught, then , you should output “No enemy spy”.

输入:

8 4 3
Zhao Qian Sun Li Zhou Wu Zheng Wang
Zhao Qian Sun Li
Zhao Zhou Zheng
2 2 2
Zhao Qian
Zhao Qian
Zhao Qian

输出: 

Qian Sun Li
No enemy spy

题目大意:就是第一行几个数字不再解释,从第二行开始:第二行是所有人,第三行是存在嫌疑的人,第四行:确定无嫌疑的人

现在问你要抓那些人;

思路:题目读懂了就简单多了,直接对字符串处理就好了,先标记第二行所有串,然后再取消第四行的串的嫌疑,再在第三行中查找仍然是标记的输出即可,用map更加方便点

代码:

/*

*/
#include<map>
#include<set>
#include <vector>
#include<stack>
#include<queue>
#include<cmath>
#include<string>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;
#define ll unsigned long long
#define inf 0x3f3f3f
#define esp 1e-8
#define bug {printf("mmp\n");}
#define mm(a,b) memset(a,b,sizeof(a))
#define T() int test,q=1;scanf("%d",&test); while(test--)
const int maxn=2e5+10;
const double pi=acos(-1.0);
const int N=201;
const int mod=1e9+7;
string s[N];
map<string,int>ss;

int main()
{
    int n,m,k;
    while(scanf("%d%d%d",&n,&m,&k)!=EOF)
    {
        ss.clear();
        for(int i=0;i<n;i++)
        {
            string s1;
            cin>>s1;
            ss[s1]=1;
        }
        for(int i=0;i<m;i++)
        {
            cin>>s[i];
        }
        for(int i=0;i<k;i++)
        {
            string s2;
            cin>>s2;
            if(ss[s2]==1)
                ss[s2]=0;
        }
        int flag=0,first=0;
        for(int i=0;i<m;i++)
        {
            if(ss[s[i]]==1&&first==0)
            {
                flag=1;
                cout<<s[i];
                first=1;
                continue;
            }
            if(ss[s[i]]==1&&flag)
            {
                cout<<" "<<s[i];
            }
        }
        if(!flag)
        {
            printf("No enemy spy\n");
        }
        else
            printf("\n");

    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/lee371042/article/details/89060495