import math
def factorial(n):
if n == 0 or n == 1:
return 1
res = 1
for i in range(2, n + 1):
res *= i
return res
def comb(n, k):
if k > n:
return 0
return factorial(n) // (factorial(k) * factorial(n - k))
def find_max_permutation_length(a, b, c):
n = a + b - 1 # Maksymalna długość permutacji w przypadku szczególnym
return n
def count_permutations(n, a, p):
return comb(n, a) % p
def main():
# Wczytanie danych wejściowych
a, b, c, p = map(int, input().split())
# Obliczanie najdłuższej permutacji
n = find_max_permutation_length(a, b, c)
# Liczenie permutacji modulo p
num_permutations = count_permutations(n, a, p)
# Wypisanie wyniku
print(n, num_permutations)
if __name__ == "__main__":
main()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import math def factorial(n): if n == 0 or n == 1: return 1 res = 1 for i in range(2, n + 1): res *= i return res def comb(n, k): if k > n: return 0 return factorial(n) // (factorial(k) * factorial(n - k)) def find_max_permutation_length(a, b, c): n = a + b - 1 # Maksymalna długość permutacji w przypadku szczególnym return n def count_permutations(n, a, p): return comb(n, a) % p def main(): # Wczytanie danych wejściowych a, b, c, p = map(int, input().split()) # Obliczanie najdłuższej permutacji n = find_max_permutation_length(a, b, c) # Liczenie permutacji modulo p num_permutations = count_permutations(n, a, p) # Wypisanie wyniku print(n, num_permutations) if __name__ == "__main__": main() |
English