Submission #2239689


Source Code Expand

#include <bits/stdc++.h>

using namespace std;

typedef long long lli;
typedef vector<lli> vll;
typedef vector<bool> vbl;
typedef vector<vector<lli>> mat;
typedef vector<unordered_map<lli,lli>> graph;

const lli mod = 1000000007;
lli n,a,b,c,d;
mat dp;

lli factorial(lli n){
  static lli dp[100000];
  if(dp[n]) return dp[n];
  if(n == 0) return dp[n] = 1;
  return dp[n] = (n*factorial(n-1))%mod;
}

lli pow(lli x,lli r,lli mod = 1000000007){
  lli ret = 1;
  for(;r != 0;r >>= 1){
    if(r&1 != 0) ret *= x,ret %= mod;
    x *= x,x %= mod;
  }
  return ret;
}

lli inverse(lli x,lli mod = 1000000007){
  return pow(x,mod-2,mod);
}

int main(){
  cin >> n >> a >> b >> c >> d;
  dp = mat(n+1,vll(n+1));
  dp[0][0] = 1;
  for(lli i = 1;i <= n;i++){
    for(lli j = 0;j <= n;j++){
      dp[i][j] = dp[i-1][j];
      if(i < a || i > b) continue;
      for(lli k = c;k <= d;k++){
        if(j-i*k < 0) break;
        lli x = dp[i-1][j-i*k];
        x = (x*factorial(j))%mod;
        x = (x*inverse(factorial(k)))%mod;
        x = (x*inverse(pow(factorial(i),k)))%mod;
        x = (x*inverse(factorial(j-i*k)))%mod;
        dp[i][j] += x;
      }
      dp[i][j] %= mod;
    }
  }
  cout << dp[n][n] << endl;
  return 0;

}

Submission Info

Submission Time
Task E - Grouping
User deoxy
Language C++14 (GCC 5.4.1)
Score 600
Code Size 1278 Byte
Status AC
Exec Time 1594 ms
Memory 10112 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 600 / 600
Status
AC × 4
AC × 15
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
All sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, subtask_1_many_01.txt, subtask_1_many_02.txt, subtask_1_many_03.txt, subtask_1_many_04.txt, subtask_1_max_01.txt, subtask_1_max_02.txt, subtask_1_min_01.txt, subtask_1_randa_01.txt, subtask_1_randa_02.txt, subtask_1_randb_01.txt, subtask_1_randb_02.txt
Case Name Status Exec Time Memory
sample_01.txt AC 1 ms 256 KB
sample_02.txt AC 1 ms 256 KB
sample_03.txt AC 1594 ms 8064 KB
sample_04.txt AC 1 ms 256 KB
subtask_1_many_01.txt AC 1167 ms 8064 KB
subtask_1_many_02.txt AC 990 ms 8064 KB
subtask_1_many_03.txt AC 1168 ms 8064 KB
subtask_1_many_04.txt AC 1167 ms 10112 KB
subtask_1_max_01.txt AC 21 ms 8064 KB
subtask_1_max_02.txt AC 16 ms 8064 KB
subtask_1_min_01.txt AC 1 ms 256 KB
subtask_1_randa_01.txt AC 3 ms 2432 KB
subtask_1_randa_02.txt AC 1 ms 256 KB
subtask_1_randb_01.txt AC 6 ms 4992 KB
subtask_1_randb_02.txt AC 5 ms 384 KB