codeforces C. Design Tutorial: Make It Nondeterministic

题意:每一个人 都有frist name 和 last name! 从每一个人的名字中任意选择
first name 或者 last name 作为这个人的编号!通过对编号的排序,得到每一个人
最终顺序!比较中的序列能否得到给定输出的序列一致!

 1 #include<iostream>

 2 #include<cstring>

 3 #include<cstdio>

 4 #include<string>

 5 #include<map>

 6 #include<algorithm>

 7 #define N 100005

 8 using namespace std;

 9 

10 int p[N];

11 string name[2*N];

12 map<string, int>mp;//将每一个人名字映射到是第几个人 

13 

14 

15 int main(){

16     int n; 

17     int cnt=0;

18     cin>>n;

19     for(int i=1; i<=n; ++i){

20         cin>>name[cnt++]>>name[cnt++];

21         mp.insert(make_pair(name[cnt-2], i));

22         mp.insert(make_pair(name[cnt-1], i));

23     }

24     for(int i=1; i<=n; ++i)//每个人的排序之后的序列 

25         cin>>p[i]; 

26     sort(name, name+cnt);//排序 

27     int k = 1;

28     for(int i=0; i<cnt; ++i)//贪心 

29         if(mp[name[i]] == p[k]){

30             ++k;

31             if( k > n) break;

32         }

33     if(k>n) cout<<"YES";

34     else cout<<"NO";

35     cout<<endl;      

36     return 0;

37 }
View Code

 

你可能感兴趣的:(codeforces)