Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from __future__ import division
- import random
- import math
- class AdversarialGame(object):
- """
- Represents an instance of the 1D peak-finding game.
- Args:
- n (int): the number of cells in the array. n is guaranteed to be a positive integer.
- """
- def __init__(self, n):
- self.n = n
- ###################### Begin student code ######################
- self.array = [None for i in range(self.n)]
- self.left_limit = 1
- self.right_limit = self.n
- self.prev_querried = None
- ###################### End Student code #######################
- def query(self, i):
- """
- Returns the value in the ith cell.
- The return value must be positive and consistent with previous queries.
- """
- ###################### Begin student code ######################
- self.prev_querried = i
- if not self.array[i] is None:
- return self.array[i]
- else:
- left_margin = i-self.left_limit
- right_margin = self.right_limit - i
- if left_margin < right_margin:
- # Do some things
- if i < self.prev_querried:
- self.array[i] = i
- return self.array[i]
- else:
- self.array[i] = i+1
- self.left_limit = i # Where should I reset left limit?
- return self.array[i]
- if right_margin < left_margin:
- # Do some things
- if i > self.prev_querried:
- self.array[i] = self.n - i
- return self.array[i]
- else:
- self.right_limit = i
- self.array[i] = (self.n - i) + 1
- return self.array[i]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement