Submission #127620

# Submission time Handle Problem Language Result Execution time Memory
127620 2019-07-09T17:14:45 Z TadijaSebez Kangaroo (CEOI16_kangaroo) C++11
51 / 100
2000 ms 5328 KB
#include <bits/stdc++.h>
using namespace std;
const int mod=1e9+7;
const int N=2005;
int add(int x, int y){ x+=y;return x>=mod?x-mod:x;}
void ADD(int &x, int y){ x=add(x,y);}
int sub(int x, int y){ x-=y;return x<0?x+mod:x;}
void SUB(int &x, int y){ x=sub(x,y);}
int dp[2][N][N],sum[2][N][N];
int Get(int i, int l, int r, int t)
{
	if(i>=l && r>=i) return add(sub(sum[t][i-1][i-1],sum[t][i-1][l-1]),sub(sum[t][i][r],sum[t][i][i]));
	else if(i>r) return sub(sum[t][i-1][r],sum[t][i-1][l-1]);
	else return sub(sum[t][i][r],sum[t][i][l-1]);
}
int main()
{
	int n,cs,cf;
	scanf("%i %i %i",&n,&cs,&cf);
	dp[0][1][1]=dp[1][1][1]=1;
	for(int l=2;l<=n;l++)
	{
		for(int t=0;t<2;t++)
			for(int i=1;i<=l;i++)
				for(int j=1;j<=l;j++)
				{
					if(t==0) for(int k=1;k<=j;k++) ADD(sum[t^1][i+(k<=i)][k],dp[t][i][j]);
					else for(int k=j+1;k<=l;k++) ADD(sum[t^1][i+(k<=i)][k],dp[t][i][j]);
				}
		for(int t=0;t<2;t++)
			for(int i=1;i<=l;i++)
				for(int j=1;j<=l;j++)
					dp[t][i][j]=sum[t][i][j],sum[t][i][j]=0;
	}
	int ans=add(dp[0][cs][cf],dp[1][cs][cf]);
	printf("%i\n",ans);
	return 0;
}

Compilation message

kangaroo.cpp: In function 'int main()':
kangaroo.cpp:19:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%i %i %i",&n,&cs,&cf);
  ~~~~~^~~~~~~~~~~~~~~~~~~~~~~
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 3 ms 760 KB Output is correct
4 Correct 4 ms 1016 KB Output is correct
5 Correct 4 ms 1016 KB Output is correct
6 Correct 4 ms 988 KB Output is correct
7 Correct 4 ms 1016 KB Output is correct
8 Correct 4 ms 1016 KB Output is correct
9 Correct 5 ms 1144 KB Output is correct
10 Correct 5 ms 1016 KB Output is correct
11 Correct 4 ms 1016 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 3 ms 760 KB Output is correct
4 Correct 4 ms 1016 KB Output is correct
5 Correct 4 ms 1016 KB Output is correct
6 Correct 4 ms 988 KB Output is correct
7 Correct 4 ms 1016 KB Output is correct
8 Correct 4 ms 1016 KB Output is correct
9 Correct 5 ms 1144 KB Output is correct
10 Correct 5 ms 1016 KB Output is correct
11 Correct 4 ms 1016 KB Output is correct
12 Correct 954 ms 4204 KB Output is correct
13 Correct 768 ms 4092 KB Output is correct
14 Correct 943 ms 4344 KB Output is correct
15 Correct 960 ms 4292 KB Output is correct
16 Correct 972 ms 4264 KB Output is correct
17 Correct 968 ms 4256 KB Output is correct
18 Correct 611 ms 3636 KB Output is correct
19 Correct 942 ms 4128 KB Output is correct
20 Correct 993 ms 4304 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 2 ms 376 KB Output is correct
2 Correct 2 ms 376 KB Output is correct
3 Correct 3 ms 760 KB Output is correct
4 Correct 4 ms 1016 KB Output is correct
5 Correct 4 ms 1016 KB Output is correct
6 Correct 4 ms 988 KB Output is correct
7 Correct 4 ms 1016 KB Output is correct
8 Correct 4 ms 1016 KB Output is correct
9 Correct 5 ms 1144 KB Output is correct
10 Correct 5 ms 1016 KB Output is correct
11 Correct 4 ms 1016 KB Output is correct
12 Correct 954 ms 4204 KB Output is correct
13 Correct 768 ms 4092 KB Output is correct
14 Correct 943 ms 4344 KB Output is correct
15 Correct 960 ms 4292 KB Output is correct
16 Correct 972 ms 4264 KB Output is correct
17 Correct 968 ms 4256 KB Output is correct
18 Correct 611 ms 3636 KB Output is correct
19 Correct 942 ms 4128 KB Output is correct
20 Correct 993 ms 4304 KB Output is correct
21 Execution timed out 2061 ms 5328 KB Time limit exceeded
22 Halted 0 ms 0 KB -