제출 #164781

#제출 시각아이디문제언어결과실행 시간메모리
164781ttnhuy313캥거루 (CEOI16_kangaroo)C++14
100 / 100
84 ms31992 KiB
#include <bits/stdc++.h> using namespace std; #define int long long const int N = 2005, MOD = 1e9 + 7; int n, s, t, memo[N][N]; void add(int &a, int b) { a = (a + b) % MOD; return; } int calc(int pos, int k) { if (pos == n + 1) return (k == 1); if (~memo[pos][k]) return memo[pos][k]; int ret = 0; if (pos == s) { add(ret, calc(pos + 1, k)); add(ret, calc(pos + 1, k + 1)); } else if (pos == t) { add(ret, calc(pos + 1, k)); add(ret, calc(pos + 1, k + 1)); } else { add(ret, calc(pos + 1, k + 1) * (k + 1 - (pos > s) - (pos > t))); if (k >= 2) add(ret, calc(pos + 1, k - 1) * (k - 1)); } return memo[pos][k] = ret; } main() { ios_base::sync_with_stdio(0); cin.tie(0); memset(memo, -1, sizeof memo); cin >> n >> s >> t; cout << calc(1, 0) << endl; return 0; }

컴파일 시 표준 에러 (stderr) 메시지

kangaroo.cpp:32:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main() {
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...