Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from sys import stdin
- from math import log
- import sys, atexit, io
- buffer = io.BytesIO()
- sys.stdout = buffer
- @atexit.register
- def write():
- sys.__stdout__.write(buffer.getvalue())
- def main():
- n = int(stdin.readline())
- ls = map(int, stdin.readline().split())
- nq = int(stdin.readline())
- ### Criando a Matrix
- sptable = []
- sptable = [ [0 for i in xrange(n)] for j in xrange(n)]
- ### Preenchendo com a base
- for k in xrange(n):
- sptable[0][k] = ls[k]
- for y in xrange(1, int(log(n, 2)) + 1):
- for x in xrange(n):
- if (x + (1<<(y-1))) >= n:
- break
- sptable[y][x] = min(sptable[y-1][x], sptable[y-1][x + (1<<(y-1))])
- for k in xrange(nq):
- L, R = map(int, stdin.readline().split())
- lg = int(log(R - L + 1 ,2))
- sys.stdout.write("%s\n" % min(sptable[lg][L], sptable[lg][R - (1 << lg)+1]))
- if __name__ == "__main__":
- atexit.register(main)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement