fork(1) download
  1. /*
  2. "IF U BELIEVE WHY NOT!!"
  3.   --Cristiano Ronaldo
  4. */
  5. #include<bits/stdc++.h>
  6. using namespace std;
  7. typedef long long int lli;
  8. #define M 1000000007
  9. #define INF 1000000007
  10. typedef pair<lli,lli> ll;
  11. #define mem(a,x) memset(a,x,sizeof(a))
  12. lli n,k,m;
  13. lli dist[507][507];
  14. lli path1[207][207];
  15. vector<int> v2(1005,1);
  16. vector<double> v;
  17. lli x,y,c,z,t,q,u,d,a1,b;
  18. struct edge
  19. {
  20. lli a,b,cost;
  21. };
  22. /*void djkstra(int x,vector<ll> v[])
  23. {
  24.   mem(vis,0);
  25.   dist[x]=0;
  26.   s2.insert({0,x});
  27.   while(!s2.empty())
  28.   {
  29.   ll p=*s2.begin();
  30.   s2.erase(s2.begin());
  31.   x=p.second;
  32.   if(vis[x])
  33.   continue;
  34.   vis[x]=1;
  35.   for(int j=0;j<v[x].size();j++)
  36.   {
  37.   if(dist[v[x][j].second]>dist[x]+v[x][j].first)
  38.   {
  39.   dist[v[x][j].second]=dist[x]+v[x][j].first;
  40.   s2.insert({dist[v[x][j].second],v[x][j].second});
  41.   a[v[x][j].second]=x;
  42.   }
  43.   }
  44.   }
  45. }*/
  46. lli parent[100007];
  47. lli find(lli a)
  48. {
  49. return a==parent[a]?a:parent[a]=find(parent[a]);
  50. }
  51. void dset(lli n)
  52. {
  53. for(int j=0;j<=n;j++)
  54. parent[j]=j;
  55. }
  56. void unio(lli a,lli b,lli rank[])
  57. {
  58. if(rank[find(a)]>rank[find(b)])
  59. parent[find(b)]=find(a);
  60. else if(rank[find(b)]>rank[find(a)])
  61. parent[find(a)]=find(b);
  62. else
  63. {
  64. parent[find(a)]=find(b);
  65. rank[find(b)]++;
  66. }
  67. }
  68. bool check(lli a)
  69. {
  70. if((a1*a*m+b*(a-1)+d)>=x)
  71. return true;
  72. return false;
  73. }
  74. /*bool valid(int i,int x)
  75. {
  76.   for(int j=1;j<x;j++)
  77.   {
  78.   if((abs(b[j-1]-i)==abs(j-x))||(i==b[j-1])||(j==x))
  79.   return false;
  80.   }
  81.   return true;
  82. }*/
  83. lli p[10007];
  84. lli dp[301][301][301];
  85. map<ll,ll> pat;
  86. map<ll,lli> p2;
  87. lli pr[200007],we[200007];
  88. lli a[100005];
  89. map<lli,lli> m4;
  90. vector<int> v4;
  91. int f=0;
  92. lli tot=1;
  93. lli vis[1001][1001];
  94. lli p1;
  95. lli s[10001];
  96. lli n1;
  97. lli solve(lli n,lli i,lli c)
  98. {
  99. //cout<<n<<" "<<i<<" "<<a[i]<<" "<<dp[n][i]<<endl;
  100. if(i>n1)
  101. return 0;
  102. if(c==0&&n>0)
  103. return 0;
  104. if(c==0&&n==0)
  105. return 1;
  106. if(n<0)
  107. return 0;
  108. if(dp[n][i][c]!=-1)
  109. return dp[n][i][c];
  110. dp[n][i][c]=solve(n-i,i,c-1);
  111. dp[n][i][c]+=solve(n,i+1,c);
  112. return dp[n][i][c];
  113. }
  114. int main()
  115. {
  116. while(1)
  117. {
  118. string s="\0";
  119. getline(cin,s);
  120. if(s.size()==0)
  121. return 0;
  122. string d[3];
  123. d[0]="\0";
  124. d[1]="\0";
  125. d[2]="\0";
  126. int c=0;
  127. for(int i=0;i<=300;i++)
  128. {
  129. for(int j=1;j<=300;j++)
  130. {
  131. for(int k=1;k<=300;k++)
  132. dp[i][j][k]=-1;
  133. }
  134. }
  135. for(int j=0;j<s.length();j++)
  136. {
  137. if(s[j]!=' ')
  138. d[c]+=s[j];
  139. else
  140. c++;
  141. }
  142. int f;
  143. stringstream ss(d[0]);
  144. ss>>f;
  145. n1=f;
  146. lli d1=0;
  147. for(int i=1;i<=f;i++)
  148. d1+=solve(f,1,i);
  149. for(int i=0;i<=300;i++)
  150. {
  151. for(int j=0;j<=300;j++)
  152. dp[0][i][j]=1;
  153. }
  154. lli sum[f+1];
  155. mem(sum,0);
  156. sum[0]=1;
  157. for(int i=1;i<=f;i++)
  158. {
  159. if(i==1)
  160. sum[i]=dp[f][1][i];
  161. else
  162. sum[i]=sum[i-1]+dp[f][1][i];
  163. }
  164. if(c==0)
  165. {
  166. if(f!=0)
  167. cout<<d1<<endl;
  168. else
  169. cout<<1<<endl;
  170. }
  171. else if(c==1)
  172. {
  173. int f1;
  174. stringstream ss1(d[1]);
  175. ss1>>f1;
  176. if(f1>f)
  177. f1=f;
  178. cout<<sum[f1]<<endl;
  179. }
  180. else
  181. {
  182. int f1,f2;
  183. stringstream ss1(d[1]);
  184. ss1>>f1;
  185.  
  186. stringstream ss2(d[2]);
  187. ss2>>f2;
  188. if(f1>f)
  189. cout<<0<<endl;
  190. else
  191. {
  192. if(f2>f)
  193. f2=f;
  194. cout<<sum[f2]-sum[f1]+dp[f][1][f1]<<endl;
  195. }
  196. }
  197. }
  198. }
Success #stdin #stdout 0s 243328KB
stdin
Standard input is empty
stdout
Standard output is empty