Submit | All submissions | Best solutions | Back to list |
ADATEAMS - Ada and Teams |
Ada the Ladybug is a well known mathematician. Next week she is going to represent her school in Mathematic Olympiad. There are many schools participating and each of them has many students. Anyway only some of the students and only some of the schools will be available to participate in the Olympiad. Question is, how many combinations of students can participate in the Olympiad?
More specifically: There are N schools from which exactly A will participate. Moreover there are B students in each school and exactly D of them will participate in the Olympiad.
Ada could count it herself. But this process takes too much time and the limits for schools and students are changing every moment so she has decided to make a program for it (in fact she has decided that you will make the program for her)!
Input
The input contains up to 104 lines, each containing four integers N,A,B,D, 1 ≤ A ≤ N ≤ 106,1 ≤ D ≤ B ≤ 106
Output
For each line print the number of combination of students, which can participate in the Olympiad. All students and universities are distinguishable, but their order doesn't matter.
Since the answer might be huge, print it modulo 109+7 (1000000007)
Example Input
2 1 2 2 2 2 2 1 2 1 2 1 4 3 3 2 4 2 1 1 10 4 12 7 50 30 44 20
Example Output
2 4 4 108 6 625817778 154746653
Added by: | Morass |
Date: | 2016-09-05 |
Time limit: | 4s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 GOSU |
hide comments
|
|||||
2016-09-13 14:12:36 hanstan
Nice time limit :P |
|||||
2016-09-08 18:10:54 Piyush Kumar
Thanks for the generous time limit :) |