#include <bits/stdc++.h>
using namespace std;
int dp[305][305][305];
const int MOD = 1e9 + 7;
int rek(int at, int open, int closed){
if(at == 0){
if(closed == 0){
return 1;
}
return 0;
}
if(dp[at][open][closed] != -1){
return dp[at][open][closed];
}
int ret = 0;
ret += rek(at - 1, open + 2, closed + 1);
if(open > 0){
ret += rek(at - 1, open - 1, max(closed - 2, 0));
}
return dp[at][open][closed] = ret % MOD;
}
int n;
int main()
{
ios_base::sync_with_stdio(false);
int t_case;
cin >> t_case;
int t;
cin >> t;
memset(dp, -1, sizeof dp);
while(t --){
cin >> n;
cout << rek(n, 0, 0) << endl;
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
87 ms |
111352 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
88 ms |
111356 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
88 ms |
111356 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
88 ms |
111356 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
89 ms |
111364 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
89 ms |
111364 KB |
Output is correct |
2 |
Correct |
76 ms |
111336 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
89 ms |
111364 KB |
Output is correct |
2 |
Correct |
76 ms |
111336 KB |
Output is correct |
3 |
Correct |
213 ms |
111464 KB |
Output is correct |