Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define ll long long
- #define ull unsigned long long int
- #define ld long double
- #define pb push_back
- #define p_b pop_back
- #define si stack<int>
- #define sll stack<ll>
- #define sc stack<char>
- #define vi vector<int>
- #define vll vector<ll>
- #define mii map<int, int>
- #define msi map<string, int>
- #define mci map<char, int>
- #define qc queue<char>
- #define qi queue<int>
- #define qll queue<ll>
- using namespace std;
- ll grid(int n, int m, vector<vector<int>>& dp){
- if(n == 1 || m == 1){
- return 1;
- } else if(dp[n-1][m-1] != -1){
- return dp[n-1][m-1];
- } else{
- dp[n-1][m-1] = grid(n-1, m, dp)+grid(n, m-1, dp);
- return dp[n-1][m-1];
- }
- }
- int main(){
- ios_base::sync_with_stdio(false);
- cin.tie(NULL);
- int n, m;
- cin >> n >> m;
- vector<vector<int>> dp;
- for(int i = 0; i < n; i++){
- vector<int> p;
- for(int j = 0; j < m; j++){
- p.pb(-1);
- }
- dp.pb(p);
- }
- cout << grid(n, m, dp);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement