POJ1912
#include <iomanip> #include <iostream> #include <cstdio> #include <cmath> #include <cstring> #include <algorithm> #include <queue> #include <stack> #include <vector> #include <map> #include <set> using namespace std; int main(int argc, char *argv[]) { long long n,m; double sum; while(scanf("%I64d%I64d",&n,&m)!=EOF) { if(n==0&&m==0) break; sum=1.0; long long i=min(n,m),j=n+m; while(i>0) { sum=sum*(double)(j--)/(double)(i--); } sum+=0.5; printf("%I64d\n",(long long)sum); } return 0; }