Rezultati

Up. imeNalogaJezikRezultatČas oddaje
svetatrojica-2017 Jungle Speed Python 3 100/100OK 11. maj '17 @ 18:41

Test Točke Porabljen spomin Porabljen čas Status
#1 9/9 8,605 MiB 0,000 s OK
#2 9/9 8,621 MiB 0,000 s OK
#3 9/9 8,609 MiB 0,000 s OK
#4 9/9 8,609 MiB 0,000 s OK
#5 9/9 8,645 MiB 0,000 s OK
#6 9/9 8,609 MiB 0,000 s OK
#7 9/9 8,602 MiB 0,000 s OK
#8 9/9 8,605 MiB 0,000 s OK
#9 9/9 8,629 MiB 0,000 s OK
#10 9/9 8,625 MiB 0,000 s OK
#11 10/10 8,609 MiB 0,000 s OK

Ocenjevani program (jungle_speed.py):
class Igralec:
	def __init__(self, st):
		self.zaprt = []
		self.odprt = []
		self.st = st
	def obrni_vrh(self):
		self.odprt.append(self.zaprt[-1])
		self.zaprt = self.zaprt[:-1]
	def obrni_kup(self):
		self.zaprt = self.odprt[::-1]
		self.odprt = []
	def pobere(self, other):
		self.zaprt = self.odprt[::-1] + other.odprt[::-1] + self.zaprt
		self.odprt = []
		other.odprt = []
	def primerjaj(self, other):
		return self.odprt[-1] == other.odprt[-1]

n = int(input())
karte = input().split(' ')
igralci = [Igralec(i+1) for i in range(n)]

#for i in range(n):
#	igralci.append(Igralec(i+1))

for i in range(len(karte)):
	igralci[i % n].zaprt.append(karte[i])
################################
i = 0
while True:
		
	if igralci[i].zaprt == [] and igralci[i].odprt != []:
		igralci[i].obrni_kup()
	if igralci[i].zaprt == [] and igralci[i].odprt == []:
		print(i+1)
		exit()
	igralci[i].obrni_vrh()
	for j in range(n):
		if i != j and igralci[j].odprt != [] and igralci[i].primerjaj(igralci[j]):
			igralci[i].pobere(igralci[j])
			igralci[i].obrni_vrh
			i -= 1
			if igralci[j].zaprt == [] and igralci[j].odprt == []:
				print(j+1)
				exit()
			break
	i = (i + 1) % n
#	print(i, igralci[i].zaprt, igralci[i].odprt)