Guest User

Untitled

a guest
Jan 7th, 2018
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. def main():
  2. n,l=map(int,raw_input().split())
  3. #print n
  4. #print l
  5.  
  6. r = 0 #result
  7. p = 0 #previous
  8. q = 0 #current
  9.  
  10. b = [] #buffer
  11. for c in sys.stdin.read(): #character
  12. if c == ' ':
  13. q = int(''.join(b))
  14. b = []
  15. r += q ^ p #yes there is a bug with A[0] but lets optimize the loop for now
  16. p = q
  17. else:
  18. b.append(c)
  19. r += int(''.join(b)) ^ p
  20.  
  21. print r
  22. main()
  23.  
  24. import re
  25. import sys
  26.  
  27. from collections import deque
  28.  
  29. def main():
  30. n,l=map(int,raw_input().split())
  31. #print n
  32. #print l
  33.  
  34. r = 0
  35. p = 0
  36. q = 0
  37.  
  38. b = sys.stdin.read(l)
  39.  
  40. b = deque(b.rsplit(' ',4000000))
  41. n = len(b)
  42. while n == 4000001:
  43. c = b.popleft()
  44. b = map(int,b)
  45. for i in xrange(n-2,0,-1):
  46. r += b[i] ^ b[i-1]
  47.  
  48. m = b[0]
  49. b = deque(c.rsplit(' ',3999999))
  50. b.append(m)
  51. n = len(b)
  52.  
  53.  
  54. b = map(int,b)
  55. for i in xrange(n-1,0,-1):
  56. r += b[i] ^ b[i-1]
  57.  
  58. print r
  59. main()
  60.  
  61. f = open("digits.txt", "rb")
  62. try:
  63. bytes = []
  64. previous_num = None
  65. byte = f.read(1)
  66. while byte != "":
  67. if byte != " ":
  68. bytes.append(byte)
  69. else:
  70. # convert bytes to a number and reset list
  71. current_num = int(''.join(map(str, bytes)))
  72. if not previous_num:
  73. previous_num = current_num
  74. else:
  75. # do your operation on previous and current number
  76. bytes = []
  77. byte = f.read(1)
  78. finally:
  79. f.close()
  80.  
  81. #!python2.7
  82. from __future__ import print_function
  83. import os, time
  84.  
  85. numbers = "100 69 38 24 17 11 3 22 "
  86. print("Numbers:", numbers)
  87.  
  88.  
  89. if not os.path.isfile('numbers.txt'):
  90. with open('numbers.txt', 'w') as outfile:
  91. n = 7*1000*1000
  92. print("Repeating %d times..." % n)
  93. print(numbers * n, file=outfile)
  94.  
  95. print("Starting read. Time:", time.strftime("%c"))
  96. total = 0
  97. with open('numbers.txt') as f:
  98. prv = None
  99. for nxt in f.read().split():
  100. nxt = int(nxt)
  101. if prv is not None:
  102. total += prv ^ nxt
  103. prv = nxt
  104.  
  105. print("Finished. Time:", time.strftime("%c"))
  106. print("Total:", total)
  107.  
  108. $ python2.7 test.py
  109. Numbers: 100 69 38 24 17 11 3 22
  110. Starting read. Time: Fri Feb 3 19:20:32 2017
  111. Finished. Time: Fri Feb 3 19:21:36 2017
  112. Total: 2603999886
  113.  
  114. %timeit numpy.fromfile('numbers.txt', dtype=int, sep=' ')
  115. 1 loop, best of 3: 23.6 s per loop
  116.  
  117. %timeit numpy.fromfile('numbers.bin')
  118. 1 loop, best of 3: 2.55 s per loop
  119.  
  120. from itertools import tee, izip as zip
  121. import re
  122.  
  123. def pairwise(iterable):
  124. a,b = tee(iterable)
  125. next(b,None)
  126. return zip(a,b)
  127.  
  128. def process_data(data):
  129. return sum( a^b for a,b in pairwise(data) )
  130.  
  131. def process_str_file_re(fname):
  132. exp = re.compile(r"d+")
  133. with open(fname,"rb") as archi:
  134. return process_data( int( data.group() ) for data in exp.finditer(archi.read()) )
Add Comment
Please, Sign In to add comment