Submission #2069219
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
#define _MACRO(_1, _2, _3, NAME, ...) NAME
#define _repl(i,a,b) for(int i=(int)(a);i<(int)(b);i++)
#define _rep(i,n) _repl(i,0,n)
#define rep(...) _MACRO(__VA_ARGS__, _repl, _rep)(__VA_ARGS__)
#define mp make_pair
#define pb push_back
#define all(x) begin(x),end(x)
#define uniq(x) sort(all(x)),(x).erase(unique(all(x)),end(x))
#define fi first
#define se second
#define dbg(...) _dbg(#__VA_ARGS__, __VA_ARGS__)
void _dbg(string){cerr<<endl;}
template<class H,class... T> void _dbg(string s,H h,T... t){int l=s.find(',');cerr<<s.substr(0,l)<<" = "<<h<<", ";_dbg(s.substr(l+1),t...);}
template<class T,class U> ostream& operator<<(ostream &o, const pair<T,U> &p){o<<"("<<p.fi<<","<<p.se<<")";return o;}
template<class T> ostream& operator<<(ostream &o, const vector<T> &v){o<<"[";for(T t:v){o<<t<<",";}o<<"]";return o;}
#define INF 1120000000
#define MOD 1000000007
// x^n mod p
long mod_pow(long x, long n, long p=MOD){
if(x==0) return 0;
long res=1;
x %= p;
while(n>0){
if(n&1) res=res*x%p;
x=x*x%p;
n>>=1;
}
return res;
}
inline long mod_inv(long x, long p=MOD){ return mod_pow(x%p, p-2, p); }
long tbl[305][305][155];
long fact[400];
long finv[400];
int main(){
fact[0] = 1;
rep(i,305) fact[i+1] = (i+1)*fact[i] %MOD;
rep(i,305) finv[i] = mod_inv(fact[i]);
int n,x,y,z;
cin>>n>>x>>y>>z;
if(x+y+z < n){
cout << 0 << endl;
return 0;
}
rep(c1,301) rep(c2,301) rep(c3,151){
long &v = tbl[c1][c2][c3];
if(c1<=n && c2<=n && c3-c1-c2<=n && c1+c2<=c3) v = finv[c1] %MOD * finv[c2] %MOD * finv[c3-c1-c2] %MOD;
else v = 0;
if(c1>0) v += tbl[c1-1][c2][c3];
if(c2>0) v += tbl[c1][c2-1][c3];
if(c1>0 && c2>0) v -= tbl[c1-1][c2-1][c3];
v %= MOD;
if(v < 0) v += MOD;
}
long ans = 0;
rep(i,x+1) rep(j,y+1) rep(k,z+1){
for(int l=0; i+j+k+l<=n; l++){
int c1 = y+z-j-k;
int c2 = x+z-i-k;
int c3 = n-i-j-k-l;
long sel = fact[n] * finv[i] %MOD * finv[j] %MOD * finv[k] %MOD * finv[l] %MOD;
ans += sel * tbl[c1][c2][c3] %MOD;
}
}
cout << ans %MOD << endl;
return 0;
}
Submission Info
Submission Time |
|
Task |
F - 就職活動 |
User |
tossy |
Language |
C++14 (GCC 5.4.1) |
Score |
0 |
Code Size |
2213 Byte |
Status |
WA |
Exec Time |
173 ms |
Memory |
112896 KB |
Judge Result
Set Name |
Sample |
Subtask1 |
Subtask2 |
Score / Max Score |
0 / 0 |
0 / 25 |
0 / 75 |
Status |
|
|
|
Set Name |
Test Cases |
Sample |
00-sample-00.txt, 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt |
Subtask1 |
01-small-04.txt, 01-small-05.txt, 01-small-06.txt, 01-small-07.txt, 01-small-08.txt, 01-small-09.txt, 01-small-10.txt, 01-small-11.txt, 01-small-12.txt, 01-small-13.txt, 01-small-14.txt, 01-small-15.txt, 01-small-16.txt, 01-small-17.txt, 01-small-18.txt, 01-small-19.txt, 01-small-20.txt, 00-sample-00.txt, 00-sample-01.txt, 00-sample-02.txt |
Subtask2 |
02-large-21.txt, 02-large-22.txt, 02-large-23.txt, 02-large-24.txt, 02-large-25.txt, 02-large-26.txt, 02-large-27.txt, 02-large-28.txt, 02-large-29.txt, 02-large-30.txt, 02-large-31.txt, 02-large-32.txt, 02-large-33.txt, 02-large-34.txt, 02-large-35.txt, 02-large-36.txt, 02-large-37.txt, 02-large-38.txt, 02-large-39.txt, 02-large-40.txt, 02-large-41.txt, 02-large-42.txt, 02-large-43.txt, 02-large-44.txt, 02-large-45.txt, 00-sample-03.txt |
Case Name |
Status |
Exec Time |
Memory |
00-sample-00.txt |
AC |
72 ms |
112896 KB |
00-sample-01.txt |
AC |
73 ms |
112896 KB |
00-sample-02.txt |
AC |
73 ms |
112896 KB |
00-sample-03.txt |
AC |
73 ms |
112896 KB |
01-small-04.txt |
WA |
73 ms |
112896 KB |
01-small-05.txt |
WA |
73 ms |
112896 KB |
01-small-06.txt |
AC |
72 ms |
112896 KB |
01-small-07.txt |
AC |
73 ms |
112896 KB |
01-small-08.txt |
WA |
72 ms |
112896 KB |
01-small-09.txt |
WA |
73 ms |
112896 KB |
01-small-10.txt |
AC |
72 ms |
112896 KB |
01-small-11.txt |
AC |
73 ms |
112896 KB |
01-small-12.txt |
AC |
73 ms |
112896 KB |
01-small-13.txt |
AC |
73 ms |
112896 KB |
01-small-14.txt |
AC |
73 ms |
112896 KB |
01-small-15.txt |
AC |
73 ms |
112896 KB |
01-small-16.txt |
AC |
73 ms |
112896 KB |
01-small-17.txt |
WA |
72 ms |
112896 KB |
01-small-18.txt |
AC |
73 ms |
112896 KB |
01-small-19.txt |
AC |
1 ms |
256 KB |
01-small-20.txt |
AC |
1 ms |
256 KB |
02-large-21.txt |
WA |
73 ms |
112896 KB |
02-large-22.txt |
WA |
78 ms |
112896 KB |
02-large-23.txt |
AC |
167 ms |
112896 KB |
02-large-24.txt |
AC |
84 ms |
112896 KB |
02-large-25.txt |
AC |
119 ms |
112896 KB |
02-large-26.txt |
AC |
149 ms |
112896 KB |
02-large-27.txt |
AC |
123 ms |
112896 KB |
02-large-28.txt |
WA |
131 ms |
112896 KB |
02-large-29.txt |
AC |
157 ms |
112896 KB |
02-large-30.txt |
AC |
106 ms |
112896 KB |
02-large-31.txt |
WA |
126 ms |
112896 KB |
02-large-32.txt |
AC |
107 ms |
112896 KB |
02-large-33.txt |
WA |
135 ms |
112896 KB |
02-large-34.txt |
AC |
173 ms |
112896 KB |
02-large-35.txt |
WA |
92 ms |
112896 KB |
02-large-36.txt |
AC |
159 ms |
112896 KB |
02-large-37.txt |
WA |
85 ms |
112896 KB |
02-large-38.txt |
AC |
142 ms |
112896 KB |
02-large-39.txt |
AC |
122 ms |
112896 KB |
02-large-40.txt |
AC |
169 ms |
112896 KB |
02-large-41.txt |
WA |
136 ms |
112896 KB |
02-large-42.txt |
AC |
170 ms |
112896 KB |
02-large-43.txt |
AC |
96 ms |
112896 KB |
02-large-44.txt |
AC |
111 ms |
112896 KB |
02-large-45.txt |
WA |
124 ms |
112896 KB |