Submission #996140

#TimeUsernameProblemLanguageResultExecution timeMemory
996140LOLOLOZapina (COCI20_zapina)C++14
55 / 110
191 ms2296 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define f first #define s second #define pb push_back #define ep emplace #define eb emplace_back #define lb lower_bound #define ub upper_bound #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define uniquev(v) sort(all(v)), (v).resize(unique(all(v)) - (v).begin()) #define mem(f,x) memset(f , x , sizeof(f)) #define sz(x) (ll)(x).size() #define __lcm(a, b) (1ll * ((a) / __gcd((a), (b))) * (b)) #define mxx *max_element #define mnn *min_element #define cntbit(x) __builtin_popcountll(x) #define len(x) (int)(x.length()) ll mod = 1e9 + 7; const int N = 340; int dp[N][N][2]; ll c[N][N]; ll cal(int x, int y) { if (x > y) return 0; if (x == 0) return 1; if (c[x][y] != -1) return c[x][y]; return c[x][y] = (cal(x, y - 1) + cal(x - 1, y - 1)) % mod; } ll dq(int id, int ss, int is) { if (id == 0) { return is && (ss == 0); } if (dp[id][ss][is] != -1) { return dp[id][ss][is]; } ll ans = 0; for (int j = 0; j <= ss; j++) { ll cc = dq(id - 1, ss - j, (j == id) || is) * cal(j, ss); ans += cc; ans %= mod; } return dp[id][ss][is] = ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); mem(c, -1); mem(dp, -1); int n; cin >> n; cout << dq(n, n, 0) << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...