Advertisement
Guest User

Untitled

a guest
Oct 18th, 2018
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5. typedef long long ll;
  6. typedef vector<ll> VLL;
  7.  
  8. VLL F1(182, -1), F0(182, -1);
  9. int z, u;
  10.  
  11. ll f1(int n, int z, int u);
  12.  
  13.  
  14. ll f0(int n, int z, int u){
  15. ll& res = F0[n];
  16. if (z < 0 or u < 0) return 0;
  17. if (res != -1) return res;
  18. if (n == 1 and u == 1) return 1;
  19. if (n == 1) return 0;
  20. return res = f1(n-1, z-1, u);
  21. }
  22.  
  23.  
  24. ll f1(int n, int z, int u){
  25. ll& res = F1[n];
  26. if (z < 0 or u < 0) return 0;
  27. if (res != -1) return res;
  28. if (n == 1) if (z == 1 or u == 1) return 1;
  29. if (n == 1) return 0;
  30. if (n > 2) return res = f0(n-1, z, u-1) + f0(n-2, z, u-2);
  31. return res = f0(n-1, z, u-1) + f1(n-1, z-1, u);
  32. }
  33.  
  34.  
  35. int main(){
  36. while(cin >> z >> u){
  37. cout << (z+u == 0 ? 1 : (f0(z+u, z, u) + f1(z+u, z, u))) << endl;
  38. }
  39. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement