UMR与黑白熊

来源:互联网 发布:虚拟男朋友聊天软件 编辑:程序博客网 时间:2024/06/10 17:26

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)。

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;}
0 0