| Task: | Skittles |
| Sender: | mooc.fi~1130261 |
| Submission time: | 2025-11-17 16:59:56 +0200 |
| Language: | Python3 (PyPy3) |
| Status: | READY |
| Result: | ACCEPTED |
| test | verdict | time | |
|---|---|---|---|
| #1 | ACCEPTED | 0.04 s | details |
| #2 | ACCEPTED | 0.04 s | details |
| #3 | ACCEPTED | 0.04 s | details |
| #4 | ACCEPTED | 0.04 s | details |
| #5 | ACCEPTED | 0.04 s | details |
| #6 | ACCEPTED | 0.04 s | details |
| #7 | ACCEPTED | 0.04 s | details |
| #8 | ACCEPTED | 0.04 s | details |
| #9 | ACCEPTED | 0.04 s | details |
| #10 | ACCEPTED | 0.04 s | details |
| #11 | ACCEPTED | 0.04 s | details |
| #12 | ACCEPTED | 0.05 s | details |
| #13 | ACCEPTED | 0.05 s | details |
| #14 | ACCEPTED | 0.06 s | details |
| #15 | ACCEPTED | 0.06 s | details |
| #16 | ACCEPTED | 0.05 s | details |
| #17 | ACCEPTED | 0.06 s | details |
| #18 | ACCEPTED | 0.06 s | details |
| #19 | ACCEPTED | 0.06 s | details |
| #20 | ACCEPTED | 0.06 s | details |
| #21 | ACCEPTED | 0.06 s | details |
| #22 | ACCEPTED | 0.06 s | details |
| #23 | ACCEPTED | 0.05 s | details |
| #24 | ACCEPTED | 0.06 s | details |
| #25 | ACCEPTED | 0.05 s | details |
| #26 | ACCEPTED | 0.06 s | details |
| #27 | ACCEPTED | 0.06 s | details |
| #28 | ACCEPTED | 0.06 s | details |
| #29 | ACCEPTED | 0.06 s | details |
| #30 | ACCEPTED | 0.06 s | details |
| #31 | ACCEPTED | 0.06 s | details |
| #32 | ACCEPTED | 0.05 s | details |
| #33 | ACCEPTED | 0.06 s | details |
| #34 | ACCEPTED | 0.05 s | details |
| #35 | ACCEPTED | 0.05 s | details |
| #36 | ACCEPTED | 0.06 s | details |
| #37 | ACCEPTED | 0.06 s | details |
| #38 | ACCEPTED | 0.06 s | details |
| #39 | ACCEPTED | 0.06 s | details |
| #40 | ACCEPTED | 0.07 s | details |
| #41 | ACCEPTED | 0.05 s | details |
| #42 | ACCEPTED | 0.06 s | details |
| #43 | ACCEPTED | 0.06 s | details |
| #44 | ACCEPTED | 0.05 s | details |
| #45 | ACCEPTED | 0.06 s | details |
| #46 | ACCEPTED | 0.05 s | details |
| #47 | ACCEPTED | 0.06 s | details |
| #48 | ACCEPTED | 0.05 s | details |
| #49 | ACCEPTED | 0.06 s | details |
| #50 | ACCEPTED | 0.05 s | details |
| #51 | ACCEPTED | 0.06 s | details |
| #52 | ACCEPTED | 0.05 s | details |
| #53 | ACCEPTED | 0.06 s | details |
| #54 | ACCEPTED | 0.06 s | details |
| #55 | ACCEPTED | 0.06 s | details |
| #56 | ACCEPTED | 0.06 s | details |
| #57 | ACCEPTED | 0.06 s | details |
| #58 | ACCEPTED | 0.06 s | details |
| #59 | ACCEPTED | 0.06 s | details |
| #60 | ACCEPTED | 0.05 s | details |
| #61 | ACCEPTED | 0.06 s | details |
| #62 | ACCEPTED | 0.06 s | details |
| #63 | ACCEPTED | 0.06 s | details |
Code
M = 998244353
n, a, b = map(int, input().split())
def inv(x):
return pow(x, M - 2, M)
fact = [1] * (n + b + 1)
for i in range(1, n + b + 1):
fact[i] = (fact[i - 1] * i) % M
invfact = [1] * (n + b + 1)
invfact[n + b] = inv(fact[n + b])
for i in range(n + b - 1, -1, -1):
invfact[i] = (invfact[i + 1] * (i + 1)) % M
max_k = a + b - 1
ans = 0
def comb(n, k):
return (fact[n] * invfact[k] * invfact[n - k]) % M
for i in range(a, b + 1):
ans += comb(n + i - 1, i)
ans %= M
print(ans)Test details
Test 1
Verdict: ACCEPTED
| input |
|---|
| 1 1 10 |
| correct output |
|---|
| 10 |
| user output |
|---|
| 10 |
Test 2
Verdict: ACCEPTED
| input |
|---|
| 2 3 3 |
| correct output |
|---|
| 4 |
| user output |
|---|
| 4 |
Test 3
Verdict: ACCEPTED
| input |
|---|
| 2 4 5 |
| correct output |
|---|
| 11 |
| user output |
|---|
| 11 |
Test 4
Verdict: ACCEPTED
| input |
|---|
| 3 4 5 |
| correct output |
|---|
| 36 |
| user output |
|---|
| 36 |
Test 5
Verdict: ACCEPTED
| input |
|---|
| 3 2 2 |
| correct output |
|---|
| 6 |
| user output |
|---|
| 6 |
Test 6
Verdict: ACCEPTED
| input |
|---|
| 5 5 5 |
| correct output |
|---|
| 126 |
| user output |
|---|
| 126 |
Test 7
Verdict: ACCEPTED
| input |
|---|
| 10 10 10 |
| correct output |
|---|
| 92378 |
| user output |
|---|
| 92378 |
Test 8
Verdict: ACCEPTED
| input |
|---|
| 10 1 10 |
| correct output |
|---|
| 184755 |
| user output |
|---|
| 184755 |
Test 9
Verdict: ACCEPTED
| input |
|---|
| 100 100 100 |
| correct output |
|---|
| 866655715 |
| user output |
|---|
| 866655715 |
Test 10
Verdict: ACCEPTED
| input |
|---|
| 10 100 100 |
| correct output |
|---|
| 918123961 |
| user output |
|---|
| 918123961 |
Test 11
Verdict: ACCEPTED
| input |
|---|
| 1000 10 10 |
| correct output |
|---|
| 84965120 |
| user output |
|---|
| 84965120 |
Test 12
Verdict: ACCEPTED
| input |
|---|
| 10000 10000 10000 |
| correct output |
|---|
| 658363258 |
| user output |
|---|
| 658363258 |
Test 13
Verdict: ACCEPTED
| input |
|---|
| 100000 100000 100000 |
| correct output |
|---|
| 966937032 |
| user output |
|---|
| 966937032 |
Test 14
Verdict: ACCEPTED
| input |
|---|
| 54883 59286 71521 |
| correct output |
|---|
| 908996595 |
| user output |
|---|
| 908996595 |
Test 15
Verdict: ACCEPTED
| input |
|---|
| 41703 72034 99721 |
| correct output |
|---|
| 139159644 |
| user output |
|---|
| 139159644 |
Test 16
Verdict: ACCEPTED
| input |
|---|
| 43601 2593 18509 |
| correct output |
|---|
| 804369499 |
| user output |
|---|
| 804369499 |
Test 17
Verdict: ACCEPTED
| input |
|---|
| 55081 7073 70816 |
| correct output |
|---|
| 806880502 |
| user output |
|---|
| 806880502 |
Test 18
Verdict: ACCEPTED
| input |
|---|
| 96705 54725 90064 |
| correct output |
|---|
| 521461113 |
| user output |
|---|
| 521461113 |
Test 19
Verdict: ACCEPTED
| input |
|---|
| 22200 5519 87075 |
| correct output |
|---|
| 866679044 |
| user output |
|---|
| 866679044 |
Test 20
Verdict: ACCEPTED
| input |
|---|
| 89288 33199 94750 |
| correct output |
|---|
| 812654801 |
| user output |
|---|
| 812654801 |
Test 21
Verdict: ACCEPTED
| input |
|---|
| 7631 22735 77994 |
| correct output |
|---|
| 30255908 |
| user output |
|---|
| 30255908 |
Test 22
Verdict: ACCEPTED
| input |
|---|
| 87345 1112 96856 |
| correct output |
|---|
| 944788802 |
| user output |
|---|
| 944788802 |
Test 23
Verdict: ACCEPTED
| input |
|---|
| 1038 36447 50189 |
| correct output |
|---|
| 654272260 |
| user output |
|---|
| 654272260 |
Test 24
Verdict: ACCEPTED
| input |
|---|
| 41703 72034 99721 |
| correct output |
|---|
| 139159644 |
| user output |
|---|
| 139159644 |
Test 25
Verdict: ACCEPTED
| input |
|---|
| 18028 1948 6831 |
| correct output |
|---|
| 631722506 |
| user output |
|---|
| 631722506 |
Test 26
Verdict: ACCEPTED
| input |
|---|
| 4873 28912 79929 |
| correct output |
|---|
| 106074189 |
| user output |
|---|
| 106074189 |
Test 27
Verdict: ACCEPTED
| input |
|---|
| 28606 2900 95813 |
| correct output |
|---|
| 538554734 |
| user output |
|---|
| 538554734 |
Test 28
Verdict: ACCEPTED
| input |
|---|
| 25093 4610 68059 |
| correct output |
|---|
| 799962519 |
| user output |
|---|
| 799962519 |
Test 29
Verdict: ACCEPTED
| input |
|---|
| 67575 4472 32712 |
| correct output |
|---|
| 857647130 |
| user output |
|---|
| 857647130 |
Test 30
Verdict: ACCEPTED
| input |
|---|
| 82449 18136 86245 |
| correct output |
|---|
| 420446937 |
| user output |
|---|
| 420446937 |
Test 31
Verdict: ACCEPTED
| input |
|---|
| 18558 38661 75914 |
| correct output |
|---|
| 924425479 |
| user output |
|---|
| 924425479 |
Test 32
Verdict: ACCEPTED
| input |
|---|
| 35543 34086 47960 |
| correct output |
|---|
| 210554536 |
| user output |
|---|
| 210554536 |
Test 33
Verdict: ACCEPTED
| input |
|---|
| 20101 32903 99080 |
| correct output |
|---|
| 88647511 |
| user output |
|---|
| 88647511 |
Test 34
Verdict: ACCEPTED
| input |
|---|
| 18028 1948 6831 |
| correct output |
|---|
| 631722506 |
| user output |
|---|
| 631722506 |
Test 35
Verdict: ACCEPTED
| input |
|---|
| 61218 12076 16908 |
| correct output |
|---|
| 820171450 |
| user output |
|---|
| 820171450 |
Test 36
Verdict: ACCEPTED
| input |
|---|
| 78139 13111 69284 |
| correct output |
|---|
| 904117059 |
| user output |
|---|
| 904117059 |
Test 37
Verdict: ACCEPTED
| input |
|---|
| 45455 2862 43952 |
| correct output |
|---|
| 430742811 |
| user output |
|---|
| 430742811 |
Test 38
Verdict: ACCEPTED
| input |
|---|
| 84538 61888 77158 |
| correct output |
|---|
| 294818599 |
| user output |
|---|
| 294818599 |
Test 39
Verdict: ACCEPTED
| input |
|---|
| 26937 59685 80971 |
| correct output |
|---|
| 680140546 |
| user output |
|---|
| 680140546 |
Test 40
Verdict: ACCEPTED
| input |
|---|
| 30632 9727 88573 |
| correct output |
|---|
| 877318826 |
| user output |
|---|
| 877318826 |
Test 41
Verdict: ACCEPTED
| input |
|---|
| 55737 66074 71002 |
| correct output |
|---|
| 123569267 |
| user output |
|---|
| 123569267 |
Test 42
Verdict: ACCEPTED
| input |
|---|
| 59351 587 51636 |
| correct output |
|---|
| 122513346 |
| user output |
|---|
| 122513346 |
Test 43
Verdict: ACCEPTED
| input |
|---|
| 8954 7866 51810 |
| correct output |
|---|
| 961929284 |
| user output |
|---|
| 961929284 |
Test 44
Verdict: ACCEPTED
| input |
|---|
| 61218 12076 16908 |
| correct output |
|---|
| 820171450 |
| user output |
|---|
| 820171450 |
Test 45
Verdict: ACCEPTED
| input |
|---|
| 9556 43003 92502 |
| correct output |
|---|
| 424034313 |
| user output |
|---|
| 424034313 |
Test 46
Verdict: ACCEPTED
| input |
|---|
| 20433 945 23474 |
| correct output |
|---|
| 794687216 |
| user output |
|---|
| 794687216 |
Test 47
Verdict: ACCEPTED
| input |
|---|
| 9941 45344 78340 |
| correct output |
|---|
| 875489658 |
| user output |
|---|
| 875489658 |
Test 48
Verdict: ACCEPTED
| input |
|---|
| 82532 68582 70655 |
| correct output |
|---|
| 238007640 |
| user output |
|---|
| 238007640 |
Test 49
Verdict: ACCEPTED
| input |
|---|
| 52729 37586 66259 |
| correct output |
|---|
| 93243919 |
| user output |
|---|
| 93243919 |
Test 50
Verdict: ACCEPTED
| input |
|---|
| 10475 17392 24871 |
| correct output |
|---|
| 977605482 |
| user output |
|---|
| 977605482 |
Test 51
Verdict: ACCEPTED
| input |
|---|
| 76232 88012 95143 |
| correct output |
|---|
| 871309467 |
| user output |
|---|
| 871309467 |
Test 52
Verdict: ACCEPTED
| input |
|---|
| 77184 58424 64500 |
| correct output |
|---|
| 693972156 |
| user output |
|---|
| 693972156 |
Test 53
Verdict: ACCEPTED
| input |
|---|
| 96888 47083 55295 |
| correct output |
|---|
| 406195062 |
| user output |
|---|
| 406195062 |
Test 54
Verdict: ACCEPTED
| input |
|---|
| 9556 43003 92502 |
| correct output |
|---|
| 424034313 |
| user output |
|---|
| 424034313 |
Test 55
Verdict: ACCEPTED
| input |
|---|
| 83891 47894 87748 |
| correct output |
|---|
| 686766192 |
| user output |
|---|
| 686766192 |
Test 56
Verdict: ACCEPTED
| input |
|---|
| 85080 21779 92819 |
| correct output |
|---|
| 114946782 |
| user output |
|---|
| 114946782 |
Test 57
Verdict: ACCEPTED
| input |
|---|
| 88235 6779 56603 |
| correct output |
|---|
| 70147249 |
| user output |
|---|
| 70147249 |
Test 58
Verdict: ACCEPTED
| input |
|---|
| 88858 66896 98375 |
| correct output |
|---|
| 601764178 |
| user output |
|---|
| 601764178 |
Test 59
Verdict: ACCEPTED
| input |
|---|
| 50586 8901 76084 |
| correct output |
|---|
| 881324074 |
| user output |
|---|
| 881324074 |
Test 60
Verdict: ACCEPTED
| input |
|---|
| 87594 26882 34225 |
| correct output |
|---|
| 42681251 |
| user output |
|---|
| 42681251 |
Test 61
Verdict: ACCEPTED
| input |
|---|
| 73130 30310 55103 |
| correct output |
|---|
| 843664756 |
| user output |
|---|
| 843664756 |
Test 62
Verdict: ACCEPTED
| input |
|---|
| 63584 31874 92876 |
| correct output |
|---|
| 437812641 |
| user output |
|---|
| 437812641 |
Test 63
Verdict: ACCEPTED
| input |
|---|
| 88714 2531 74051 |
| correct output |
|---|
| 603847190 |
| user output |
|---|
| 603847190 |
