UMR与黑白熊

Problem Description

小埋今天得到了一个很神奇的数列,感觉自己萌萌哒。然而这其实是黑白熊的套路。小埋在碰见这个序列之后变成了这个样子:

3721

此时的你需要准确的回答黑白熊的问题,才能帮助小埋拜托控制,而不会让小埋 over 掉。

问题其实也很简单,那就是问你在这个序列中(序列中有 n 个数,标号为 1 到 n),存不存在一个区间 [L, R] (1 <= L <= R <= n) 使得这个区间中所有的数的和为 m 的倍数。
Input

输入数据有多组(数据组数不超过 50),到 EOF 结束。

每组输入包括:

第一行为以空格分开的 n (1 <= n <= 10000) 和 m (1 <= m <= 20000),代表的意义如题目中所说。
第二行为 n 个数,表示题目中的序列(每个数不超过 1000)。

    1
    2

Output

如果存在题目中描述的区间则输出“qwq”,否则输出“QWQ”。
Example Input

3 2
1 2 3

Example Output

qwq

Hint

上面的序列可以分成 [1]、[2]、[3]、[1,2]、[2,3]、[1,2,3]。

对应的和分别是 1、2、3、3、5、6。2 和 6 都是 2 的倍数。
Author
「2016级ACM集训队第二次选拔赛」UMR
#include <stdio.h>
int main()
{
    int n,x,y;
    int m;
    int i,j;
    int a[10000];
    while(scanf("%d%d",&n,&m)!=EOF)
    {
        int flag=0;
        int b[10000]= {0};
        for(i=0; i<n; i++)
        {
            scanf("%d",&a[i]);
            if(a[i]%m==0)
            {
                flag=1;
                break;
            }
        }
        if(flag)
        {
            printf("qwq\n");
            continue;
        }
        for(i=0; i<n; i++)
        {
            for(j=i; j<n; j++)
            {
                b[i]+=a[j];
                if(b[i]%m==0)
                {
                    flag=1;
                    break;
                }
            }

            if(flag)
            {
                printf("qwq\n");
                break;
            }
        }
        if(flag==0) printf("QWQ\n");
    }
    return 0;
}


全部评论

相关推荐

只写bug的程序媛:人家说一本以上,不是及以上
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务