fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ms(s,n) memset(s,n,sizeof(s))
  5. #define all(a) a.begin(),a.end()
  6. #define present(t, x) (t.find(x) != t.end())
  7. #define sz(a) int((a).size())
  8. #define FOR(i, a, b) for (int i = (a); i < (b); ++i)
  9. #define FORd(i, a, b) for (int i = (a) - 1; i >= (b); --i)
  10. #define pb push_back
  11. #define pf push_front
  12. #define fi first
  13. #define se second
  14. #define mp make_pair
  15.  
  16. typedef long long ll;
  17. typedef unsigned long long ull;
  18. typedef long double ld;
  19. typedef pair<int,int> pi;
  20. typedef vector<int> vi;
  21. typedef vector<pi> vii;
  22.  
  23. const int MOD = (int) 1e9+7;
  24. const int INF = (int) 1e9+1;
  25. inline ll gcd(ll a,ll b){ll r;while(b){r=a%b;a=b;b=r;}return a;}
  26. inline ll lcm(ll a,ll b){return a/gcd(a,b)*b;}
  27.  
  28.  
  29. void FileIO(){
  30. freopen("input.txt","r", stdin);
  31. freopen("output.txt","w",stdout);
  32. }
  33.  
  34. int n,k,s,ans=0;
  35. int x[100];
  36. int a[21];
  37.  
  38. void inp(){
  39. cin>>n>>k>>s;
  40. FOR(i,1,n+1) a[i]=i;
  41. }
  42.  
  43. void ql(int pos,int cnt,int sum){
  44. if(cnt==k && sum==s){
  45. // for(int i=0;i<cnt;i++){
  46. // cout<<x[i]<<" ";
  47. // }
  48. // cout<<"\n";
  49. ++ans;
  50. return;
  51. }
  52. for(int j=pos;j<=n;j++){
  53. if(a[j]+sum<=s){
  54. x[cnt]=a[j];
  55. ql(j+1,cnt+1,sum+a[j]);
  56. }
  57. }
  58. }
  59.  
  60. int main(){
  61. //FileIO();
  62. while(true){
  63. inp();
  64. if(n==0 && k==0 && s==0){
  65. break;
  66. }
  67. ans=0;
  68. ql(1,0,0);
  69. cout<<ans<<"\n";
  70. }
  71. }
Success #stdin #stdout 0s 5284KB
stdin
Standard input is empty
stdout
Standard output is empty