Submission #24755

# Submission time Handle Problem Language Result Execution time Memory
24755 2017-06-13T02:45:56 Z nibnalin Kangaroo (CEOI16_kangaroo) C++14
6 / 100
0 ms 64832 KB
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;

const int maxn = int(2e3)+5;

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

int DP(int idx, int chains, int start, int end)
{
	if(idx == n) return (start && end && !chains);
	else if(memo[idx][chains][start][end] != -1) return memo[idx][chains][start][end];
	else if(idx == cs)
	{
		int res = DP(idx+1, chains, 1, end);
		if(chains) res += DP(idx+1, chains-1, 1, end);
		memo[idx][chains][start][end] = res;
		return res;
	}
	else if(idx == cf)
	{
		int res = DP(idx+1, chains, start, 1);
		if(chains) res += DP(idx+1, chains-1, start, 1);
		memo[idx][chains][start][end] = res;
		return res;
	}
	else
	{
		int res = DP(idx+1, chains+1, start, end);
		if(chains > 1) res += DP(idx+1, chains-1, start, end);
		if(start && chains) res += DP(idx+1, chains-1, start, end);
		if(chains && end) res += DP(idx+1, chains-1, start, end);
		memo[idx][chains][start][end] = res;
		return res;
	}
}

int main(void)
{
	scanf("%d%d%d", &n, &cs, &cf);
	cs--, cf--;

	for(int i = 0;i <= n;i++)
	{
		for(int j = 0;j <= n;j++)
		{
			for(int k = 0;k < 2;k++)
			{
				for(int l = 0;l < 2;l++) memo[i][j][k][l] = -1;
			}
		}
	
	}

	printf("%d\n", DP(0, 0, 0, 0));
}

Compilation message

kangaroo.cpp: In function 'int main()':
kangaroo.cpp:41:31: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d%d%d", &n, &cs, &cf);
                               ^
# Verdict Execution time Memory Grader output
1 Correct 0 ms 64832 KB Output is correct
2 Correct 0 ms 64832 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 64832 KB Output is correct
2 Correct 0 ms 64832 KB Output is correct
3 Incorrect 0 ms 64832 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 64832 KB Output is correct
2 Correct 0 ms 64832 KB Output is correct
3 Incorrect 0 ms 64832 KB Output isn't correct
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 64832 KB Output is correct
2 Correct 0 ms 64832 KB Output is correct
3 Incorrect 0 ms 64832 KB Output isn't correct
4 Halted 0 ms 0 KB -