#include <bits/stdc++.h>
using namespace std;
#define X first
#define Y second
#define pb push_back
#define mp make_pair
typedef pair<int, int> ii;
typedef vector<int> vi;
typedef vector< ii > vii;
typedef long long L;
typedef vector< L > vL;
typedef vector< vL > vvL;
typedef vector< vi > vvi;
typedef vector< vii > vvii;
const int inf = 1e9;
const L inf8 = 1e18;
const int md = 1e9 + 7;
int s, e;
int dp[2005][2005];
void add(int &a, int b)
{
a += b;
if(a>= md) a -= md;
}
int mul(int a, int b)
{
return (1LL*a*b)%md;
}
int cc(int i, int j)
{
if(i>= s) j--;
if(i>= e) j--;
return j;
}
int main()
{
int n; scanf("%d %d %d", &n, &s, &e);
dp[0][0] = 1;
int ans = 0;
for(int i = 1; i<= n; i++)
{
for(int j = 0; j<= n; j++)
{
int v = dp[i-1][j];
int f = cc(i-1, j);
if(i == s)
{
add(dp[i][j], mul(f, v));
add(dp[i][j+1], v);
if(i == n && j == 1) add(ans, v);
}
else if(i == e)
{
add(dp[i][j], mul(f, v));
add(dp[i][j+1], v);
if(i == n && j == 1) add(ans, v);
}
else
{
add(dp[i][j+1], v);
if(j && i-1>= s) add(dp[i][j-1], mul(f, v));
if(j && i-1>= e) add(dp[i][j-1], mul(f, v));
if(j) add(dp[i][j-1], mul(f, mul(f-1, v)));
if(i == n && j == 2) add(ans, v);
}
}
}
printf("%d\n", ans);
return 0;
}
Compilation message
kangaroo.cpp: In function 'int main()':
kangaroo.cpp:37:38: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
int n; scanf("%d %d %d", &n, &s, &e);
^
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
17724 KB |
Output is correct |
2 |
Correct |
0 ms |
17724 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
17724 KB |
Output is correct |
2 |
Correct |
0 ms |
17724 KB |
Output is correct |
3 |
Correct |
0 ms |
17724 KB |
Output is correct |
4 |
Correct |
0 ms |
17724 KB |
Output is correct |
5 |
Correct |
0 ms |
17724 KB |
Output is correct |
6 |
Correct |
0 ms |
17724 KB |
Output is correct |
7 |
Correct |
0 ms |
17724 KB |
Output is correct |
8 |
Correct |
0 ms |
17724 KB |
Output is correct |
9 |
Correct |
0 ms |
17724 KB |
Output is correct |
10 |
Correct |
0 ms |
17724 KB |
Output is correct |
11 |
Correct |
0 ms |
17724 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
17724 KB |
Output is correct |
2 |
Correct |
0 ms |
17724 KB |
Output is correct |
3 |
Correct |
0 ms |
17724 KB |
Output is correct |
4 |
Correct |
0 ms |
17724 KB |
Output is correct |
5 |
Correct |
0 ms |
17724 KB |
Output is correct |
6 |
Correct |
0 ms |
17724 KB |
Output is correct |
7 |
Correct |
0 ms |
17724 KB |
Output is correct |
8 |
Correct |
0 ms |
17724 KB |
Output is correct |
9 |
Correct |
0 ms |
17724 KB |
Output is correct |
10 |
Correct |
0 ms |
17724 KB |
Output is correct |
11 |
Correct |
0 ms |
17724 KB |
Output is correct |
12 |
Correct |
0 ms |
17724 KB |
Output is correct |
13 |
Correct |
0 ms |
17724 KB |
Output is correct |
14 |
Correct |
0 ms |
17724 KB |
Output is correct |
15 |
Correct |
0 ms |
17724 KB |
Output is correct |
16 |
Correct |
0 ms |
17724 KB |
Output is correct |
17 |
Correct |
0 ms |
17724 KB |
Output is correct |
18 |
Correct |
0 ms |
17724 KB |
Output is correct |
19 |
Correct |
0 ms |
17724 KB |
Output is correct |
20 |
Correct |
0 ms |
17724 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
17724 KB |
Output is correct |
2 |
Correct |
0 ms |
17724 KB |
Output is correct |
3 |
Correct |
0 ms |
17724 KB |
Output is correct |
4 |
Correct |
0 ms |
17724 KB |
Output is correct |
5 |
Correct |
0 ms |
17724 KB |
Output is correct |
6 |
Correct |
0 ms |
17724 KB |
Output is correct |
7 |
Correct |
0 ms |
17724 KB |
Output is correct |
8 |
Correct |
0 ms |
17724 KB |
Output is correct |
9 |
Correct |
0 ms |
17724 KB |
Output is correct |
10 |
Correct |
0 ms |
17724 KB |
Output is correct |
11 |
Correct |
0 ms |
17724 KB |
Output is correct |
12 |
Correct |
0 ms |
17724 KB |
Output is correct |
13 |
Correct |
0 ms |
17724 KB |
Output is correct |
14 |
Correct |
0 ms |
17724 KB |
Output is correct |
15 |
Correct |
0 ms |
17724 KB |
Output is correct |
16 |
Correct |
0 ms |
17724 KB |
Output is correct |
17 |
Correct |
0 ms |
17724 KB |
Output is correct |
18 |
Correct |
0 ms |
17724 KB |
Output is correct |
19 |
Correct |
0 ms |
17724 KB |
Output is correct |
20 |
Correct |
0 ms |
17724 KB |
Output is correct |
21 |
Correct |
13 ms |
17724 KB |
Output is correct |
22 |
Correct |
13 ms |
17724 KB |
Output is correct |
23 |
Correct |
16 ms |
17724 KB |
Output is correct |
24 |
Correct |
83 ms |
17724 KB |
Output is correct |
25 |
Correct |
96 ms |
17724 KB |
Output is correct |
26 |
Correct |
86 ms |
17724 KB |
Output is correct |
27 |
Correct |
99 ms |
17724 KB |
Output is correct |
28 |
Correct |
63 ms |
17724 KB |
Output is correct |