Cod sursa(job #3368315)

Utilizator BurloiEmilAndreiBurloi Emil Andrei BurloiEmilAndrei Data 14 octombrie 2026 11:00:58
Problema Cowfood Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.09 kb
#include <bits/stdc++.h>
using namespace std;
constexpr int mod = 3210121;
int main() {
  if (fopen("cowfood.in", "r")) {
    freopen("cowfood.in", "r", stdin);
    freopen("cowfood.out", "w", stdout);
  }
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int k, s, n;
  cin >> k >> s >> n;
  vector<vector<int>> a(n, vector<int>(k));
  for (int i = 0; i < n; i++)
    for (int j = 0; j < k; j++)
      cin >> a[i][j];
  int64_t ans = 0;
  for (int mask = 0; mask < (1 << n); mask++) {
    vector<int> b(k, 0);
    int bits = 0;
    for (int i = 0; i < n; i++)
      if (mask & (1 << i)) {
        bits++;
        for (int j = 0; j < k; j++)
          b[j] = max(b[j], a[i][j]);
      }
    int64_t ways = 1;
    int sum = 0;
    for (int j = 0; j < k; j++) {
      int limit = s - sum;
      if (limit < b[j]) {
        ways = 0;
        break;
      }
      ways = ways * (limit - b[j] + 1) % mod;
      sum += b[j];
    }
    if (bits % 2 == 0)
      ans = (ans + ways) % mod;
    else
      ans = (ans - ways + mod) % mod;
  }
  cout << ans << '\n';
  return 0;
}