Advertisement
Guest User

Untitled

a guest
Dec 18th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.72 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. long long a,s,d,f;
  4. vector<vector<long long>> r(3000,vector<long long>(3000,-1));
  5. long long rrt(long long m,long long n){
  6.     if(m<0){
  7.         return 0;
  8.     }
  9.     if(r[m][n]>-1) {
  10.         return r[m][n];
  11.     }
  12.     if(0==m){
  13.         r[m][n]=1;
  14.         return 1;
  15.     }
  16.     if(n*m==0){
  17.         r[m][n]=0;
  18.         return 0;
  19.     }
  20.     if(n*2<m){
  21.         r[m][n]=0;
  22.         return 0;
  23.     }
  24.     long long t=m-m/2;
  25.     r[m][n]=0;
  26.     for(t=t;t<=n;++t){
  27.         r[m][n]+=rrt(m-t,t/2);
  28.     }
  29.     return r[m][n];
  30. }
  31. signed main(){
  32.     freopen("peacefulsets.in","r",stdin);
  33.     freopen("peacefulsets.out","w",stdout);
  34.     cin>>a;
  35.     cout<<rrt(a,a);
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement