Submission #150921

# Submission time Handle Problem Language Result Execution time Memory
150921 2019-09-01T11:21:27 Z Mamnoon_Siam Kangaroo (CEOI16_kangaroo) C++17
36 / 100
5 ms 3064 KB
#include <bits/stdc++.h>
using namespace std;

const int mod = 1e9 + 7;
const int maxn = 55;

int n, cs, cf;
int dp[maxn][maxn][maxn][2];

int f(int l, int r, int t, int dir) {
	int &ret = dp[l][r][t][dir];
	if(ret != -1) return ret;
	if(l + r == 1) return ret = (l ^ 1) == dir;
	if((!dir and !l) or (dir and !r)) return ret = 0;
	ret = 0;
	if(!dir) {
		for(int i = 1; i <= l; i++) {
			if(i == t) continue;
			ret += f(i - 1, l + r - i, t - (i < t), dir ^ 1);
			if(ret >= mod) ret -= mod;
		}
	} else {
		for(int i = l + 1; i <= l + r; i++) {
			if(i == t) continue;
			ret += f(i - 1, l + r - i, t - (i < t), dir ^ 1);
			if(ret >= mod) ret -= mod;
		}
	} return ret;
}

int main(int argc, char const *argv[])
{
	// freopen("in", "r", stdin);
	memset(dp, -1, sizeof dp);
	cin >> n >> cs >> cf;
	int l = f(cs - 1, n - cs, cf - (cs < cf), 0);
	int r = f(cs - 1, n - cs, cf - (cs < cf), 1);
	cout << (l + r) % mod << endl;
	return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1656 KB Output is correct
2 Correct 3 ms 1656 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1656 KB Output is correct
2 Correct 3 ms 1656 KB Output is correct
3 Correct 3 ms 1656 KB Output is correct
4 Correct 4 ms 1556 KB Output is correct
5 Correct 3 ms 1656 KB Output is correct
6 Correct 4 ms 1656 KB Output is correct
7 Correct 4 ms 1656 KB Output is correct
8 Correct 3 ms 1656 KB Output is correct
9 Correct 4 ms 1656 KB Output is correct
10 Correct 4 ms 1656 KB Output is correct
11 Correct 4 ms 1656 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1656 KB Output is correct
2 Correct 3 ms 1656 KB Output is correct
3 Correct 3 ms 1656 KB Output is correct
4 Correct 4 ms 1556 KB Output is correct
5 Correct 3 ms 1656 KB Output is correct
6 Correct 4 ms 1656 KB Output is correct
7 Correct 4 ms 1656 KB Output is correct
8 Correct 3 ms 1656 KB Output is correct
9 Correct 4 ms 1656 KB Output is correct
10 Correct 4 ms 1656 KB Output is correct
11 Correct 4 ms 1656 KB Output is correct
12 Runtime error 5 ms 3064 KB Execution killed with signal 11 (could be triggered by violating memory limits)
13 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 3 ms 1656 KB Output is correct
2 Correct 3 ms 1656 KB Output is correct
3 Correct 3 ms 1656 KB Output is correct
4 Correct 4 ms 1556 KB Output is correct
5 Correct 3 ms 1656 KB Output is correct
6 Correct 4 ms 1656 KB Output is correct
7 Correct 4 ms 1656 KB Output is correct
8 Correct 3 ms 1656 KB Output is correct
9 Correct 4 ms 1656 KB Output is correct
10 Correct 4 ms 1656 KB Output is correct
11 Correct 4 ms 1656 KB Output is correct
12 Runtime error 5 ms 3064 KB Execution killed with signal 11 (could be triggered by violating memory limits)
13 Halted 0 ms 0 KB -