fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define maxn -20000000000 //negative value to break code and force you to put right constraint
  4. #define mod 1000000007
  5. #define md(x) (x) % mod;
  6. #define sc scanf
  7. #define pr printf
  8. #define fi first
  9. #define se second
  10. #define mp make_pair
  11. #define pb push_back
  12. #define ps push
  13. #define prt(x) cout << (#x) << " is " << (x) << endl
  14. #define EPS 1e-9
  15. #define INF 100000000000
  16. #define INFd 1e9
  17. typedef long long ll;
  18. typedef long double ld;
  19. typedef pair<int, int> ii;
  20. typedef vector<int> vi;
  21. typedef vector<ii> vii;
  22. typedef vector<ll> vll;
  23. typedef vector<double> vd;
  24.  
  25. int main()
  26. {
  27. ll m;
  28. cin>>m;
  29. while(m)
  30. {
  31. m--;
  32. ll n,k;
  33. cin>>n>>k;
  34. vector<ll> v(n+1);
  35. for(ll i=1;i<=n;i++)
  36. cin>>v[i];
  37. ll dp[10005][105]={0};
  38. memset(dp,0LL,sizeof dp);
  39. dp[0][0]=1;
  40. for(ll i=1;i<=(n);i++)
  41. {
  42. for(ll j=0;j<k;j++)
  43. {
  44. dp[i][j]=dp[i-1][((j-v[i])%k+k)%k]+dp[i-1][((j+v[i])%k+k)%k];
  45. cout<<dp[i][j]<<" ";
  46. }
  47. cout<<endl;
  48. }
  49. if(dp[n][0]>0)
  50. cout<<"Divisible\n";
  51. else
  52. cout<<"Not divisible\n";
  53. }
  54. }
  55.  
  56.  
Success #stdin #stdout 0s 11760KB
stdin
2
4 7
17 5 -21 15
4 5
17 5 -21 15
stdout
0 0 0 1 1 0 0 
0 1 1 0 0 1 1 
0 2 2 0 0 2 2 
4 2 2 2 2 2 2 
Divisible
0 0 1 1 0 
0 0 2 2 0 
0 2 2 2 2 
0 4 4 4 4 
Not divisible