Advertisement
Guest User

27задача_комба

a guest
May 27th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.97 KB | None | 0 0
  1. def factorial(n:int) -> int:
  2.     ans = 1
  3.     for i in range(2,n+1):
  4.         ans *= i
  5.     return ans
  6.  
  7. def cnk(n:int,k:int) -> int:
  8.     ans = 1
  9.     for i in range(n-k):
  10.         ans *= n - i
  11.     return ans // factorial(k)
  12.  
  13. #print(cnk(5,2))
  14.  
  15. N = int(input())
  16. data = [0] * 12
  17. ans = 0
  18.  
  19. for i in range(N):
  20.     k = int(input())
  21.     data[k%12] += 1
  22.  
  23. for i in range(len(data)):
  24.     for j in range(i,len(data)):
  25.         for k in range(j,len(data)):
  26.             if i != k and j != k and i != j:
  27.                 if (i + k + j) % 12 == 0:
  28.                     ans += data[i] * data[j] * data[k]
  29.             elif i == j and i != k:
  30.                 if (i + j) % 12 == 0:
  31.                     ans += data[k] * cnk(data[i],2)
  32.             elif j == k and i != j:
  33.                 if (j+k) % 12 == 0:
  34.                     ans += data[i] * cnk(data[j],2)
  35.             elif i == j and i == k:
  36.                 if (i+k+j) % 12 == 0:
  37.                     ans += cnk(data[i],3)
  38. print(ans)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement