Submission #69684796


Source Code Expand

// Problem: 'E - Count Sequences 2'
// Contest: 'AtCoder - UNIQUE VISION Programming Contest 2024 Autumn (AtCoder Beginner Contest 425)'
// URL: 'https://atcoder.jp/contests/abc425/tasks/abc425_e'
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
//
// Powered by competitive-companion.el (https://github.com/luishgh/competitive-companion.el)

#include <bits/stdc++.h>

using namespace std;

#define _ ios_base::sync_with_stdio(0);cin.tie(0);
#define endl '\n'

typedef long long ll;

const int INF = 0x3f3f3f3f;
const ll LINF = 0x3f3f3f3f3f3f3f3fll;

const int MAX = 5e3 + 10;

int choose[MAX][MAX];

int m;

ll add(ll a, ll b) {
  ll r = a + b;
  if (r < 0) r += m;
  else if (r >= m) r -= m;
  return r;
}

ll mul(ll a, ll b) {
  return a * b % m;
}

ll fexp(ll a, ll b) {
  ll r = 1;
  while (b) {
    if (b&1) r = mul(r, a);
    a = mul(a, a);
    b >>= 1;
  }
  return r;
}

void solve() {
  int n; cin >> n;
  vector<int> c(n);
  ll tot = 0;
  for (int i = 0; i < n; i++) {
    cin >> c[i];
    tot += c[i];
  }

  ll ans = 1;
  ll pref = 0;

  for (int i = 0; i < n; i++) {
    ans = mul(ans, choose[tot - pref][c[i]]);
    // cerr << i << ' ' << tot - pref << ' ' << c[i] << ' ' << choose[tot-pref][c[i]] << endl;
    pref += c[i];
  }
  cout << ans << endl;
}

int main() {_;
  int t; cin >> t;

  cin >> m;

  for (int i = 0; i < MAX; i++) {
    choose[i][0] = 1;
    for (int j = i + 1; j < MAX; j++)
      choose[i][j] = 0;
  }

  for (int i = 1; i < MAX; i++) {
    for (int j = 1; j < MAX; j++) {
      choose[i][j] = add(choose[i-1][j-1], choose[i-1][j]);
    }
  }


  while (t--) {
    solve();
  }

  return 0;
}

Submission Info

Submission Time
Task E - Count Sequences 2
User luishgh
Language C++ 20 (gcc 12.2)
Score 450
Code Size 1721 Byte
Status AC
Exec Time 82 ms
Memory 101676 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 450 / 450
Status
AC × 2
AC × 51
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt
All 00_sample_00.txt, 00_sample_01.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 01_test_36.txt, 01_test_37.txt, 01_test_38.txt, 01_test_39.txt, 01_test_40.txt, 01_test_41.txt, 01_test_42.txt, 01_test_43.txt, 01_test_44.txt, 01_test_45.txt, 01_test_46.txt, 01_test_47.txt, 01_test_48.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 59 ms 101460 KiB
00_sample_01.txt AC 59 ms 101520 KiB
01_test_00.txt AC 69 ms 101404 KiB
01_test_01.txt AC 75 ms 101476 KiB
01_test_02.txt AC 79 ms 101532 KiB
01_test_03.txt AC 69 ms 101488 KiB
01_test_04.txt AC 76 ms 101584 KiB
01_test_05.txt AC 80 ms 101516 KiB
01_test_06.txt AC 69 ms 101536 KiB
01_test_07.txt AC 76 ms 101448 KiB
01_test_08.txt AC 80 ms 101388 KiB
01_test_09.txt AC 69 ms 101496 KiB
01_test_10.txt AC 75 ms 101516 KiB
01_test_11.txt AC 81 ms 101464 KiB
01_test_12.txt AC 69 ms 101468 KiB
01_test_13.txt AC 75 ms 101464 KiB
01_test_14.txt AC 80 ms 101424 KiB
01_test_15.txt AC 69 ms 101612 KiB
01_test_16.txt AC 76 ms 101588 KiB
01_test_17.txt AC 80 ms 101512 KiB
01_test_18.txt AC 69 ms 101464 KiB
01_test_19.txt AC 75 ms 101536 KiB
01_test_20.txt AC 80 ms 101508 KiB
01_test_21.txt AC 69 ms 101528 KiB
01_test_22.txt AC 75 ms 101528 KiB
01_test_23.txt AC 81 ms 101452 KiB
01_test_24.txt AC 69 ms 101676 KiB
01_test_25.txt AC 76 ms 101660 KiB
01_test_26.txt AC 80 ms 101468 KiB
01_test_27.txt AC 69 ms 101604 KiB
01_test_28.txt AC 75 ms 101524 KiB
01_test_29.txt AC 81 ms 101528 KiB
01_test_30.txt AC 69 ms 101552 KiB
01_test_31.txt AC 75 ms 101660 KiB
01_test_32.txt AC 81 ms 101452 KiB
01_test_33.txt AC 69 ms 101548 KiB
01_test_34.txt AC 76 ms 101568 KiB
01_test_35.txt AC 80 ms 101484 KiB
01_test_36.txt AC 69 ms 101484 KiB
01_test_37.txt AC 76 ms 101428 KiB
01_test_38.txt AC 80 ms 101468 KiB
01_test_39.txt AC 69 ms 101556 KiB
01_test_40.txt AC 75 ms 101476 KiB
01_test_41.txt AC 80 ms 101392 KiB
01_test_42.txt AC 69 ms 101544 KiB
01_test_43.txt AC 76 ms 101460 KiB
01_test_44.txt AC 80 ms 101460 KiB
01_test_45.txt AC 69 ms 101472 KiB
01_test_46.txt AC 75 ms 101472 KiB
01_test_47.txt AC 81 ms 101528 KiB
01_test_48.txt AC 82 ms 101528 KiB