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