Advertisement
Guest User

Untitled

a guest
Mar 21st, 2019
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. from sys import stdin
  2. from math import log
  3. import sys, atexit, io
  4.  
  5. buffer = io.BytesIO()
  6. sys.stdout = buffer
  7.  
  8. @atexit.register
  9. def write():
  10. sys.__stdout__.write(buffer.getvalue())
  11.  
  12. def main():
  13. n = int(stdin.readline())
  14. ls = map(int, stdin.readline().split())
  15. nq = int(stdin.readline())
  16.  
  17. ### Criando a Matrix
  18. sptable = []
  19. sptable = [ [0 for i in xrange(n)] for j in xrange(n)]
  20.  
  21. ### Preenchendo com a base
  22. for k in xrange(n):
  23. sptable[0][k] = ls[k]
  24.  
  25.  
  26. for y in xrange(1, int(log(n, 2)) + 1):
  27. for x in xrange(n):
  28. if (x + (1<<(y-1))) >= n:
  29. break
  30. sptable[y][x] = min(sptable[y-1][x], sptable[y-1][x + (1<<(y-1))])
  31.  
  32. for k in xrange(nq):
  33. L, R = map(int, stdin.readline().split())
  34. lg = int(log(R - L + 1 ,2))
  35. sys.stdout.write("%s\n" % min(sptable[lg][L], sptable[lg][R - (1 << lg)+1]))
  36.  
  37.  
  38. if __name__ == "__main__":
  39. atexit.register(main)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement