| Task: | Kortit II |
| Sender: | yoyoyoJ |
| Submission time: | 2024-11-10 14:59:45 +0200 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | 3 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 3 |
| #2 | WRONG ANSWER | 0 |
| #3 | WRONG ANSWER | 0 |
| #4 | WRONG ANSWER | 0 |
| #5 | WRONG ANSWER | 0 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | 1, 2, 3, 4, 5 | details |
| #2 | WRONG ANSWER | 0.62 s | 2, 3, 4, 5 | details |
| #3 | TIME LIMIT EXCEEDED | -- | 3, 4, 5 | details |
| #4 | TIME LIMIT EXCEEDED | -- | 4, 5 | details |
| #5 | TIME LIMIT EXCEEDED | -- | 5 | details |
| #6 | TIME LIMIT EXCEEDED | -- | 5 | details |
Code
#print(10976757120%(1000000000+7))
tt =int(input())
def permutations(elem):
if len(elem) <= 1:
yield elem
return
for pe in permutations(elem[1:]):
for i in range(len(elem)):
yield pe[:i] + elem[0:1] + pe[i:]
def binomial(lst,n):
if n==0:
return [[]]
l=[]
for i in range(0,len(lst)):
m=lst[i]
rt=lst[i+1:]
for p in binomial(rt,n-1):
l.append([m]+p)
return l
def comb(n, k):
if k < 0 or k > n:
return 0
if k == 0 or k == n:
return 1
k = min(k, n - k)
result = 1
for i in range(1, k + 1):
result *= n
result //= i
n -= 1
return result
#print(comb(5,3))
rr=0
t=True
su=[]
a2=1
a3=1
while t:
rr+=1
n, m ,k = [int(x) for x in input().split()]
li=[]
q=[]
q.append(1)
for i in range(2,m+k):
li.append(i)
q.append(i)
q.append(m+k)
#print(li,q)
am = list(binomial(li,m-1))
amm = list(binomial(li,m-1))
#print(am)
#print(amm)
amount=0
amou2=0
bg2=0
bg3=0
b5=0
if m+k>n:
su.append(0)
elif n==1:
if m==0 and k ==0:
su.append(1)
else:
su.append(0)
elif k==0 and m == 0:
for g in range(1, n+1):
a3 = a3*g
su.append(a3%(1000000000+7))
a3=1
li2 = []
elif k==0 or m == 0:
su.append(0)
elif k==1 and m == 1:
for g in range(1, n+1):
a3 = a3*g
#print(a3)
su.append(a3*(comb(n, n-m-k))%(1000000000+7))
a3=1
elif k==1 or m == 1:
for g in range(1, m+k+1):
a2 = a2*g
#print(g)
#print(math.comb(n, n-m-k))
a2 = a2*(comb(n, n-m-k))*(comb(n, n-m-k))
a2=a2%(1000000000+7)
su.append(a2)
a2=1
else:
for x in amm:
x2=list(x)
x2.insert(0, 1)
#print(x2)
il = [i for i in q if i not in x2]
#print(il)
for y in am:
j = list(y)
j.append(m+k)
#print(j)
lis2 = list(permutations(j))
il2 = list(permutations([i for i in q if i not in j]))
#print(il2)
lis = list(x2)
liss = [i for i in q if i not in lis]
g=-1
for u in lis2:
g+=1
for i in range(0, len(u)):
if int(lis[i])<int(u[i]):
bg=1
else:
bg=0
#print(0)
break
#print(lis, u,bg)
if bg ==1:
for i in il2:
for h in range(0,len(i)-1):
#print(il[h]>i[h])
if il[h]>i[h]:
bg2=1
else:
bg2=0
#print(0)
break
bg3+=bg2
#print(il,i)
#print(bg3)
amount+=bg*bg3
bg3=0
amou2=0
#print(amount)
for g in range(1, m+k+1):
amount= amount*g
#print(g)
amount=amount*(comb(n, n-m-k))*(comb(n, n-m-k))
amount=amount%(1000000000+7)
#print(math.comb(n, n-m-k))
su.append(amount)
if rr==tt:
t=False
for i in su:
print(int(i))Test details
Test 1
Group: 1, 2, 3, 4, 5
Verdict: ACCEPTED
| input |
|---|
| 54 4 4 0 3 1 3 3 2 2 4 0 4 ... |
| correct output |
|---|
| 0 0 0 0 0 ... |
| user output |
|---|
| 0 0 0 0 0 ... |
Test 2
Group: 2, 3, 4, 5
Verdict: WRONG ANSWER
| input |
|---|
| 284 6 1 0 5 0 2 7 1 5 7 7 5 ... |
| correct output |
|---|
| 0 0 35280 0 36720 ... |
| user output |
|---|
| 0 0 35280 0 36720 ... |
Test 3
Group: 3, 4, 5
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 841 19 3 12 19 19 13 19 7 13 20 11 15 ... |
| correct output |
|---|
| 40291066 0 0 0 0 ... |
| user output |
|---|
| (empty) |
Test 4
Group: 4, 5
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000 15 12 6 7 1 6 44 4 26 6 6 5 ... |
| correct output |
|---|
| 0 5040 494558320 0 340694548 ... |
| user output |
|---|
| (empty) |
Test 5
Group: 5
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000 892 638 599 966 429 655 1353 576 1140 1403 381 910 ... |
| correct output |
|---|
| 0 0 0 249098285 0 ... |
| user output |
|---|
| (empty) |
Test 6
Group: 5
Verdict: TIME LIMIT EXCEEDED
| input |
|---|
| 1000 2000 1107 508 2000 1372 249 2000 588 65 2000 1739 78 ... |
| correct output |
|---|
| 750840601 678722180 744501884 159164549 868115056 ... |
| user output |
|---|
| (empty) |
