Advertisement
tien_noob

LOJ - 1125 - Divisible Group Sums

Jun 10th, 2021
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1. //Make CSP great again
  2. #include <bits/stdc++.h>
  3. #define TASK "TESTCODE"
  4. using namespace std;
  5. long long dp[201][12][20], a[201];
  6. int n, m, d, q;
  7. void read()
  8. {
  9.    cin >> n >> q;
  10.    for (int i = 1; i <= n; ++ i)
  11.    {
  12.        cin >> a[i];
  13.    }
  14. }
  15. void solve()
  16. {
  17.    while (q--)
  18.    {
  19.        cin >> d >> m;
  20.        memset(dp, 0, sizeof(dp));
  21.        dp[0][0][0] = 1;
  22.        for (int i = 1; i <= n; ++ i)
  23.        {
  24.            dp[i][0][0] = 1;
  25.            for (int j = 1; j <= m; ++ j)
  26.            {
  27.                for (int k = 0; k < d; ++ k)
  28.                {
  29.                    dp[i][j][k] += dp[i-1][j][k];
  30.                    dp[i][j][k] += dp[i-1][j-1][(k - (a[i] % d) + d) % d];
  31.                }
  32.            }
  33.        }
  34.        cout << dp[n][m][0] << '\n';
  35.    }
  36. }
  37. int main()
  38. {
  39.     ios_base::sync_with_stdio(false);
  40.     cin.tie(nullptr);
  41.     //freopen(TASK".INP", "r", stdin);
  42.     //freopen(TASK".OUT", "w", stdout);
  43.     int t = 1;
  44.     bool typetest = true;
  45.     if (typetest)
  46.     {
  47.         cin >> t;
  48.     }
  49.     for (int __ = 1; __ <= t; ++ __)
  50.     {
  51.         cout << "Case " << __ << ": " << '\n';
  52.         read();
  53.         solve();
  54.     }
  55. }
  56.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement