Submission #1164709


Source Code Expand

#include <iostream>
using namespace std;
typedef long long lli;
#define MOD 1000000007
lli n,a,b,c,d;
lli dp[1001][1001];
bool bl[1001][1001];



lli exeuclid(lli a,lli aa,lli x,lli xx,lli y,lli yy){
	lli q;
	if(a == 0) return aa > 0 ? xx : -xx;
	q = aa / a;
	return exeuclid(aa - q * a,a,xx - q * x,x,yy - q * y,y);
}

lli invarse(lli x){
	return (exeuclid(MOD,x,0,1,1,0) + MOD) % MOD;
}


lli factrial(lli x){
	static lli dp[100000];
	if(dp[x]) return dp[x];
	if(x == 0) 	return dp[x] = 1;
				return dp[x] = (factrial(x-1) * x) % MOD;
}
lli pow(lli a,lli n,lli mod = 1000000007){
	lli ret = 1;
	for(;n!=0;n=n>>1){
		if(n&1) ret = (ret * a) % mod;
		a = (a * a) % mod;
	}
	return ret;
}
lli f(lli n,lli k,lli x){
    lli ret = factrial(n);ret %= MOD;
    ret *= invarse(factrial(n-x*k));ret %= MOD;
    ret *= invarse(pow(factrial(k),x));ret %= MOD;
    ret *= invarse(factrial(x));ret %= MOD;
    return ret;
}
lli dfs(lli i,lli j){
    if(bl[i][j]) return dp[i][j];
    bl[i][j] = true;
    if(i < a) return dp[i][j] = j ? 0 : 1;
    dp[i][j] = dfs(i-1,j);
    for(lli k = c;k <= d && j-k*i >= 0;k++){
        dp[i][j] += dfs(i-1,j-k*i)*f(j,i,k);
        dp[i][j] %= MOD;
    }
    return dp[i][j];
}
int main(int argc, char const *argv[]) {
    cin >> n >> a >> b >> c >> d;
    cout << dfs(b,n) << endl;
    return 0;
}

Submission Info

Submission Time
Task E - Grouping
User deoxy
Language C++14 (GCC 5.4.1)
Score 0
Code Size 1385 Byte
Status TLE
Exec Time 2103 ms
Memory 8320 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 600
Status
AC × 3
TLE × 1
AC × 14
TLE × 1
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 TLE 2103 ms 4480 KB
sample_04.txt AC 1 ms 256 KB
subtask_1_many_01.txt AC 1874 ms 896 KB
subtask_1_many_02.txt AC 1215 ms 8320 KB
subtask_1_many_03.txt AC 1762 ms 1024 KB
subtask_1_many_04.txt AC 1535 ms 5888 KB
subtask_1_max_01.txt AC 2 ms 2560 KB
subtask_1_max_02.txt AC 2 ms 4480 KB
subtask_1_min_01.txt AC 1 ms 256 KB
subtask_1_randa_01.txt AC 2 ms 4608 KB
subtask_1_randa_02.txt AC 1 ms 512 KB
subtask_1_randb_01.txt AC 2 ms 4608 KB
subtask_1_randb_02.txt AC 3 ms 2944 KB