Uva 369 - Combinations


 import java.util.*;
import java.math.*;

class Main
{
 public static void main (String[] args)
 {
  Scanner in = new Scanner(System.in);
  
  BigInteger fact[]=new BigInteger [5010];
  
  BigInteger f = fact[0] = BigInteger.valueOf(1);
  
  for(int i=1;i<101;i++) // factorial dp
  {
   fact[i] = f.multiply(BigInteger.valueOf(i));
   
   f=fact[i];
  }
  
  while(in.hasNext())
  {
   int n=in.nextInt(),m = in.nextInt();
   if(n==0 && m==0)
   {
    break;
   }
   //System.out.println(fact[n]);
   int val = n - m;
   
   BigInteger ans = fact[n].divide(fact[val].multiply(fact[m]));
   System.out.println(n+ " things taken " + m + " at a time is " + ans +" exactly.");
  }
 }
}

Comments

Popular posts from this blog

Uva 10650 - Determinate Prime

SPOJ-CMG - Collecting Mango

LeetCode Palindrome Number