Advertisement
Farz0l1x

Untitled

Jan 3rd, 2024
848
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.18 KB | None | 0 0
  1. #Медленный способ
  2. file = open('8A.txt')
  3. A = list(map(int, file.readlines()))
  4. n = A[0]
  5. A = A[1:]
  6. count = 0
  7. for i in range(n):
  8.      for j in range(i + 1, n):
  9.           if (A[i] + A[j]) % 80 == 0 and (A[i] > 50000 or A[j] > 50000):
  10.                count += 1
  11. print(count)
  12.  
  13. #Статический способ
  14. file = open('8B.txt')
  15. A = list(map(int, file.readlines()))
  16. n = A[0]
  17. A = A[1:]
  18. kb = [0] * 80
  19. k = [0] * 80
  20. for i in range(n):
  21.      ost = A[i] % 80
  22.      if A[i] > 50000:
  23.           kb[ost] += 1
  24.      else:
  25.           k[ost] += 1
  26. count = (k[0] * kb[0]) + (kb[0] * (kb[0] - 1) // 2) + (k[40] * kb[40]) + (kb[40] * (kb[40] - 1) // 2)
  27. for i in range(1, 40):
  28.      count += (kb[i] * kb[80 - i]) + (k[i] * kb[80 - i]) + (kb[i] * k[80 - i])
  29. print(count)
  30.  
  31. #Динамичсекий способ
  32. file = open('8B.txt')
  33. A = list(map(int, file.readlines()))
  34. n = A[0]
  35. A = A[1:]
  36. kb = [0] * 80
  37. k = [0] * 80
  38. count = 0
  39. for i in range(n):
  40.      ost = A[i] % 80
  41.      if A[i] > 50000:
  42.           count += kb[(80 - ost % 80) % 80] + k[(80 - ost % 80) % 80]
  43.           kb[ost] += 1
  44.      else:
  45.           count += kb[(80 - ost % 80) % 80]
  46.           k[ost] += 1  
  47. print(count)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement