#include <bits/stdc++.h>
using namespace std;
const int N=10010;
int a[N],n,m,k,s[N];
int mod(int x){
if(x>=0)return x%k;
return k-(-x)%k;
}
int main()
{
cin>>m;
while(m--){
cin>>n>>k;
s[0]=0;
bool flag=false;
for(int i=1;i<=n;i++){
cin>>a[i];
a[i]=mod(a[i]);
}
sort(a+1,a+1+n);
for(int i=1;i<=n;i++){
s[i]=s[i-1]+a[i];
}
for(int i=n;i>=1;i--){
if(!mod(s[i]-(s[n]-s[i]))){
flag=true;
break;
}
}
reverse(a+1,a+1+n);
for(int i=1;i<=n;i++){
s[i]=s[i-1]+a[i];
}
for(int i=n;i>=1;i--){
if(!mod(s[i]-(s[n]-s[i]))){
flag=true;
break;
}
}
for(int i=1;i<=10;i++){
random_shuffle(a+1,a+1+n);
for(int i=1;i<=n;i++){
s[i]=s[i-1]+a[i];
}
for(int i=n;i>=1;i--){
if(!mod(s[i]-(s[n]-s[i]))){
flag=true;
break;
}
}}
if(flag){
cout<<"Divisible"<<endl;
}else{
cout<<"Not divisible"<<endl;
}
}
return 0;
}
这代码AC
无敌的运气