Top 10 Programming Languages to Learn in 2019

CodeChef's Solutions

Marbles’ Solution with Approach – Codechef

Problem Statement

Rohit dreams he is in a shop with an infinite amount of marbles. He is allowed to select n marbles. There are marbles of k different colors. From each color there are also infinitely many marbles. Rohit wants to have at least one marble of each color, but still there are a lot of possibilities for his selection. In his effort to make a decision he wakes up.Now he asks you how many possibilities for his selection he would have had.Assume that marbles of equal color can’t be distinguished, and the order of the marbles is irrelevant.


Input

The first line of input contains a number T <= 100 that indicates the number of test cases to follow. Each test case consists of one line containing n and k, where n is the number of marbles Rohit selects and k is the number of different colors of the marbles. You can assume that 1<=k<=n<=1000000.


Output

For each test case print the number of possibilities that Rohit would have had. You can assume that this number fits into a signed 64-bit integer.


Examples

Input:
2
10 10
30 7
Output:
1
475020

Solution

Code

def solve(n,k):
    e=1
    if n == k:
      return 1
    if n<k:
      return 0
    if n>k :
        for i in range(min(k-1,n-k)):
           n -= 1
           e=(e*n)//(i+1)

    return e

T = int(input())
for i in range(T):
    n, k= [int(x) for x in input().split()]
    print(solve(n,k))

Question Link – link

Related posts
CodeChef's Solutions

Number of Factors Solution with Approach - CodeChef

CodeChef's Solutions

Flipping Coins Solution with Approach - Codechef

CodeChef's Solutions

The Next Palindrome's Solution with Approach - CodeChef

CodeChef's Solutions

Closing the Tweets Problem's Solution with Approach - CodeChef

Leave a Reply

Your email address will not be published. Required fields are marked *

Improve Your Python

...with a fresh 🐍 Python Trick 💌
code snippet every couple of days:

You have successfully subscribed to the newsletter

There was an error while trying to send your request. Please try again.

PyBlog will use the information you provide on this form to be in touch with you and to provide updates and marketing.