Task: | Kortit II |
Sender: | yoyoyoJ |
Submission time: | 2024-11-10 14:58:16 +0200 |
Language: | Python3 (PyPy3) |
Status: | READY |
Result: | 0 |
group | verdict | score |
---|---|---|
#1 | WRONG ANSWER | 0 |
#2 | WRONG ANSWER | 0 |
#3 | WRONG ANSWER | 0 |
#4 | WRONG ANSWER | 0 |
#5 | WRONG ANSWER | 0 |
test | verdict | time | group | |
---|---|---|---|---|
#1 | WRONG ANSWER | 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*2) 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: WRONG ANSWER
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 70560 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) |