All pastes #261387 Raw Edit

Stuff

public java v1 · immutable
#261387 ·published 2006-11-29 05:05 UTC
rendered paste body
import java.io.*;import java.math.*;import java.util.*;public class Main{	public static BigInteger combin(int n,int r)	{		if(n<r)			return BigInteger.ZERO;		if(n==r||r==0)			return BigInteger.ONE;		BigInteger numerator = fact(n);		BigInteger denominator = fact(r).multiply(fact(n-r));		BigInteger ret = numerator.divide(denominator);		return ret;	}	public static BigInteger fact(int n)	{		BigInteger p = new BigInteger("1");		BigInteger nn = new BigInteger(""+n);		BigInteger i = new BigInteger("2");		for(;i.compareTo(nn)<=0;i=i.add(BigInteger.ONE))			p=p.multiply(i);		return p;	}	public static void main(String[] args) throws IOException 	{		BigInteger X,Y,Z,t1,t2;		int n,m,N,R;		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));		String str = br.readLine();		StringTokenizer st = new StringTokenizer(str," ");		n = Integer.parseInt(st.nextToken());		m = Integer.parseInt(st.nextToken());		t1 = new BigInteger(""+(2*n));		t2 = new BigInteger(""+(2*n*n-n));		N = n*m + n - 1;		R = 2*n - 1;		X = combin(N,R);		Y = combin(N-m,R).multiply(t1);		Z = combin(N-2*m,R).multiply(t2);		BigInteger ans = X.subtract(Y).add(Z);		System.out.println(ans);	}}