Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //UVa Q10036
- #include<iostream>
- #include<string.h>
- using namespace std;
- int arr[10001];
- bool dp[10001][101];
- int main(){
- int t,n,k;
- cin>>t;
- while(t--){
- cin>>n>>k;
- memset(dp,0,sizeof(dp));
- for(int i = 1; i <= n; ++i){
- cin>>arr[i];
- arr[i] = abs(arr[i]%k);
- }
- dp[0][0] = 1;
- for(int i = 1; i <= n; ++i){
- for(int j = 0; j < k; ++j){
- if(!dp[i-1][j])continue;
- dp[i][(j+arr[i])%k] = 1;
- dp[i][(j+k-arr[i])%k] = 1;
- }
- }
- if(dp[n][0])cout<<"Divisible\n";
- else cout<<"Not divisible\n";
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement