Guest User

Untitled

a guest
Aug 15th, 2018
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3.  
  4. def file_open(filename):
  5. T = 0
  6. caseList = []
  7. with open(filename) as f:
  8. T = int(f.readline().strip())
  9. for i in range(T):
  10. key = int(f.readline().strip())
  11. value = [int(x) for x in f.readline().strip().split()]
  12. caseList.append((key, value))
  13. return caseList
  14.  
  15. def sortforthis(elements):
  16. """
  17. >>> sortforthis([457, 478, 106, 601, 804])
  18. [804, 601, 457, 106, 478]
  19. >>> sortforthis([384, 675, 498, 839])
  20. [839, 675, 384, 498]
  21. """
  22. output = []
  23. elements = sorted(elements, reverse = True)
  24. is_even = False
  25. if len(elements) % 2 == 0:
  26. is_even = True
  27. else:
  28. is_even = False
  29. if is_even:
  30. output.append(elements[0])
  31. for i in range(1, len(elements), 2):
  32. output.append(elements[i])
  33. for i in range(len(elements) - 2 , 1, -2):
  34. output.append(elements[i])
  35. else:
  36. output.append(elements[0])
  37. for i in range(1, len(elements) -1, 2):
  38. output.append(elements[i])
  39. for i in range(len(elements) - 1, 1, -2):
  40. output.append(elements[i])
  41. return output
  42.  
  43. def process(caseTuple):
  44. import math
  45. menseki = 0
  46. numOfElements, elementsList = caseTuple
  47. angle = 2 * math.pi / numOfElements
  48. elementsList = sortforthis(elementsList)
  49. for i in range(numOfElements):
  50. j = i + 1 if i < numOfElements - 1 else 0
  51. tmp = math.sin(angle) * elementsList[i] * elementsList[j] / 2
  52. menseki += tmp
  53. return menseki
  54.  
  55. def solve(caseList, outputName):
  56. f = open(outputName, 'w')
  57. for i, T in enumerate(caseList):
  58. answer = process(T)
  59. f.write("Case #" + str(i + 1) + ": " + str(answer) + "\n")
  60. f.close()
  61.  
  62. def _test():
  63. import doctest
  64. doctest.testmod()
  65.  
  66. def main():
  67. FILENAME = "A-large.in"
  68. OUTPUTNAME = "outputAlarge.txt"
  69. A = file_open(FILENAME)
  70. solve(A, OUTPUTNAME)
  71.  
  72. if __name__ == "__main__":
  73. main()
  74. #_test()
Add Comment
Please, Sign In to add comment