UMR与黑白熊

来源:互联网 发布:商业数据分析报告 编辑:程序博客网 时间:2024/06/10 16:29

Problem Description

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

这里写图片描述

此时的你需要准确的回答黑白熊的问题,才能帮助小埋拜托控制,而不会让小埋 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<bits/stdc++.h>using namespace std;int main(){    long long int a[10050];    int n, m;    while(cin >>n >> m)    {        int i, j;        bool flag = false;        memset(a, 0, sizeof(a));        for (i = 1; i <= n; i ++)        {            cin >> a[i];            a[i] = a[i] + a[i - 1];        }        for (i = 1; i <= n; i ++)        {            for (j = 1; j < i; j ++)            {                if ((a[i] - a[j]) % m == 0)                {                    flag = true;                    break;                }            }            if (flag == true)                break;        }        if (flag == true)            cout <<"qwq" << endl;        else            cout << "QWQ" << endl;    }}
原创粉丝点击