题目

源地址:

http://poj.org/problem?id=2028

理解

一边输入一边记录开会最多且最近的那天。

代码


#include <cstdio>
#include <cstdlib>
#include <cstring>

int a[110];
int N, Q;
int day, days, i, j;
int min, max;
int flag = 0;

int main(int argc, char const *argv[])
{
    while (scanf("%d%d", &N, &Q), Q != 0 || N != 0)
    {
        flag = 0;
        memset(a, 0, sizeof(a));
        min = 10000;
        max = -1;
        for (i = 0; i < N; i++)
        {
            scanf("%d", &day);
            for (j = 0; j < day; j++)
            {
                scanf("%d", &days);
                a[days] ++;
                if (a[days] >= Q)
                {
                    flag = 1;
                    if (max < a[days])
                    {
                        max = a[days];
                        min = days;
                    }
                    if (a[days] == max && min > days)
                    {
                        min = days;
                        max = a[days];
                    }
                }
            }
        }
        if (flag == 1)
        {
            printf("%d\n", min);
        }
        else
        {
            printf("0\n");
        }
    }
    return 0;
}

更新日志

  • 2014年08月06日 已AC。