罗恩祥 • 3个月前
#include <bits/stdc++.h>
using namespace std;
long long lst[10016];
bool flag = 0;
long long N,K;
void dfs(long long idx,long long sum)
{
if(sum % K == 0 && idx == N)
{
flag = 1;
return;
}
else if(idx == N) //符号数量 = N - 1
{
return;
}
else
{
dfs(idx + 1,sum + abs(lst[idx + 1]));
dfs(idx + 1,sum - abs(lst[idx + 1]));
}
}
int main()
{
long long n;
cin >> n;
while(n--)
{
cin >> N >> K;
for(int i = 1;i <= N;i++)
{
cin >> lst[i];
}
dfs(1,lst[1]);
if(K == -1)
cout << "Not divisible" << endl << endl;
else if(flag)
cout << "Divisible" << endl << endl;
else
cout << "Not divisible" << endl << endl;
flag = 0;
}
}
// lst = INF,1,1,INF,1,INF,INF,INF,INF,INF,INF
Comments: