Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define sz(a) int((a).size())
- #define pb push_back
- #define all(c) begin(c),end(c)
- #define cpresent(c,x) (find(all(c),x) != (c).end())
- #define rep(i,a,b) for(int (i) = (a) ; (i) < (b) ;(i)++)
- #define INF 2000000007
- #define LINF 9000000000000000007
- #define MOD 100000000
- using namespace std;
- typedef vector<int> vi;
- typedef vector<vi> vvi;
- typedef pair<int,int> ii;
- typedef long long ll;
- int n1,n2,k1,k2;
- ll dp[101][101][10][10];
- bool calc[101][101][10][10];
- ll solve(int sz1 , int sz2 , int s1 , int s2)
- {
- if(s1 > k1 || s2 > k2 || sz1 > n1 || sz2 > n2)return 0;
- if( (sz1 + sz2) && (n1 + n2) )return 1;
- if(calc[sz1][sz2][s1][s2])return dp[sz1][sz2][s1][s2];
- calc[sz1][sz2][s1][s2] = true;
- dp[sz1][sz2][s1][s2] = (solve(sz1+1,sz2,s1+1,0) + solve(sz1,sz2+1,0,s2+1))%MOD;
- return dp[sz1][sz2][s1][s2];
- }
- int main()
- {
- cin >> n1 >> n2 >> k1 >> k2;
- ll res = solve(0,0,0,0);
- cout << res;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement