2013年10月25日 星期五

[UVA] 369 - Combinations


#include<stdio.h>
long long int s[105][105]={0};
int main(){
    int i,j,n,m;
    for(i=0;i<=100;i++)
        s[i][0]=s[0][i]=1;
    s[0][0]=0;
    for(i=1;i<=100;i++)
        for(j=1;j<=100;j++){
            n=i,m=j;
            if(m*2>n) m=n-m,s[i][j]=s[n][m];
            else
            s[i][j]=s[i-1][j-1]+s[i-1][j];
        }
    while(scanf("%d%d",&n,&m)!=EOF && n+m){
        printf("%d things taken %d ",n,m);
        if(m*2>n) m=n-m;
        printf("at a time is %lld exactly.\n",s[n][m]);
    }
}

沒有留言:

張貼留言