# GitBook

Time Limit: 2000/1000 MS (Java/Others)

Memory Limit: 131072/131072 K (Java/Others) Problem Description

Given a sequence, you’re asked whether there exists a consecutive subsequence whose sum is divisible by m. output YES, otherwise output NO

Input

The first line of the input has an integer T (1 \leq T \leq 101≤T≤10), which represents the number of test cases. For each test case, there are two lines: 1.The first line contains two positive integers n, m (1 \leq n \leq 1000001≤n≤100000, 1 \leq m \leq 50001≤m≤5000). 2.The second line contains n positive integers x (1 \leq x \leq 1001≤x≤100) according to the sequence.

Output

Output T lines, each line print a YES or NO.

Sample Input

2 3 3 1 2 3 5 7 6 6 6 6 6 1 2 3 4 5 2 3 3 1 2 3 5 7 6 6 6 6 6 Sample Output

YES NO 1 2 YES NO 中文题意：


#include<stdio.h>
#include<string.h>
int flag[10000];
int main() {
int T;
scanf("%d",&T);
while(T--) {
int n,m;
scanf("%d %d",&n,&m);
memset(flag,0,sizeof(flag));
flag[0]=1;
bool win=false;
int sum=0;
for(int i=0; i<n; i++) {
int t;
scanf("%d",&t);
sum=(sum+t)%m;
if(flag[sum]==1)
win=true;
flag[sum]=1;
}
if(win)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}