本文主要是介绍UMR与黑白熊,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
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;elsecout << "QWQ" << endl;}
}
这篇关于UMR与黑白熊的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!