Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- // cache-ის აღწერა.
- // cache-ში ვინახავ უკვე გამოთვლილ პასუხებს კონკრეტული d და n-ების წყვილებისთვის.
- map <pair <int, int>, int> cache;
- // f ფუნქციის აღწერა
- int f(int d, int n) {
- // თუ d უდრის 1-ს აბრუნებს n+1-ს
- if (d == 1) return n+1;
- // თუ n უდრის 0-ს აბრუნებს 1-ს
- if (n == 0) return 1;
- // თუ პასუხი შენახული გვაქვს ამ წყვილისთვის, აბრუნებს შენახულ პასუხს
- if (cache[{d, n}]) return cache[{d, n}];
- // cache-ში ინახავს f(d, n-1) + f(d-1, n-1)-ს ამ კონკრეტული d და n-ის წყვილისთვის და იმავეს აბრუნებს
- return cache[{d, n}] = f(d, n-1) + f(d-1, n-1);
- }
- int main() {
- // პროგრამის დასაწყისი
- // d და n ცვლადების აღწერა
- int d, n;
- // d და n ცვლადებს შემოტანა
- cin >> d >> n;
- // f(d, n)-ს გამოტანა
- cout << f(d, n) << "\n";
- }
Add Comment
Please, Sign In to add comment