#include <iostream>
#include <cstdio>
#include <math.h>
#include <bits/stdc++.h>
using namespace std;
int x,y,i,j,k,l,dp[21][21];
long C(long n,long r)
{
if(n==r || r==0)
return 1;
else if(dp[n][r]!=-1)
return dp[n][r];
else
{
dp[n][r]=C(n-1,r)+C(n-1,r-1);
return dp[n][r];
}
}
int main()
{
long n,r,s;
printf("Enter n & r:\n");
while(scanf("%ld%ld",&n,&r)==2)
{
memset(dp,-1,sizeof(dp));
s=C(n,r);
cout<<endl<<"nCr"<<" = "<<s<<endl;
printf("\nEnter n & r:\n");
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCB4LHksaSxqLGssbCxkcFsyMV1bMjFdOwoKbG9uZyBDKGxvbmcgbixsb25nIHIpCnsKICAgIGlmKG49PXIgfHwgcj09MCkKICAgICAgICByZXR1cm4gMTsKCiAgICBlbHNlIGlmKGRwW25dW3JdIT0tMSkKICAgICAgICByZXR1cm4gZHBbbl1bcl07CiAgICBlbHNlCiAgICAgICAgewogICAgICAgICAgICBkcFtuXVtyXT1DKG4tMSxyKStDKG4tMSxyLTEpOwogICAgICAgICAgICByZXR1cm4gZHBbbl1bcl07CiAgICAgICAgfQp9CgoKaW50IG1haW4oKQp7CiAgICBsb25nIG4scixzOwoKICAgIHByaW50ZigiRW50ZXIgbiAmIHI6XG4iKTsKICAgIHdoaWxlKHNjYW5mKCIlbGQlbGQiLCZuLCZyKT09MikKICAgIHsKCgogICAgICAgIG1lbXNldChkcCwtMSxzaXplb2YoZHApKTsKCiAgICAgICAgcz1DKG4scik7CiAgICAgICAgY291dDw8ZW5kbDw8Im5DciI8PCIgPSAiPDxzPDxlbmRsOwoKCiAgICAgICAgcHJpbnRmKCJcbkVudGVyIG4gJiByOlxuIik7CiAgICB9CgogICAgcmV0dXJuIDA7Cn0KCgo=