Codeforces Round #145 (Div. 1, ACM-ICPC Rules)A

来源:互联网 发布:ifconfig修改mac地址 编辑:程序博客网 时间:2024/04/30 13:31
//记录每一个film的已经确定喜欢的数
//记录film最多有几个喜欢的明星数
//然后比较,如果对于这个film,它已经确定的喜欢的数大于等于其他的film的最多的喜欢的明星,那么0
//如果存在一个其他film已经确定的喜欢的数大于这个film最多喜欢的明星数,那么1
//其他2
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std ;
const int maxn  = 110 ;
struct node
{
    int like;
    int unsure;
}film[maxn] ;
int star[maxn] ;
int vis[maxn] ;
int temp[maxn] ;
int main()
{
    int m , k ;
    char str[20];
   freopen("input.txt","r",stdin);
  freopen("output.txt","w",stdout);
    while(~scanf("%d%d" ,&m,&k))
   {
        memset(star , 0 , sizeof(star));
        memset(film , 0 , sizeof(film)) ;
        memset(vis , 0 ,sizeof(vis)) ;
        for(int i = 1;i <= k;i++)
        {
            int t;
            scanf("%d" ,&t) ;
            star[t]  = 1;
        }
        int block;
        scanf("%d" ,&block);
        for(int i = 1;i <= block;i++)
        {
            int n ;
            int sum_l = 0;int sum_u = 0;
            scanf("%s" ,str) ;
            scanf("%d" ,&n) ;
            for(int j = 1;j <= n;j++)
            {
                scanf("%d" ,&temp[j]) ;
                if(!temp[j])
                sum_u++;
                else if(star[temp[j]])
                sum_l++;
            }
            if(n == m)for(int j = 1;j <= n;j++)vis[j] = 1;
            film[i].unsure = min(k , sum_l+sum_u);
            film[i].like = sum_l;
            if(n - sum_l > (m-k))
            film[i].like = n-(m-k);
        }
       for(int i = 1;i <= block;i++)
       {
           int flag = 0 ;
           for(int j = 1;j <= block;j++)
           {
               if(i == j)continue;
               if(film[i].like < film[j].unsure)
               flag = 1;
           }
           if(!flag){puts("0");continue;}
           flag = 0;
           for(int j = 1;j <= block;j++)
           {
               if(i == j)continue ;
               if(film[i].unsure < film[j].like)
               flag = 1;
           }
           if(flag){puts("1");continue;}
           puts("2");
        }
   }
    return 0;
}









































0 0