Cod sursa(job #2670183)

Utilizator thinkphpAdrian Statescu thinkphp Data 9 noiembrie 2020 12:31:30
Problema Subsecventa de suma maxima Scor 60
Compilator py Status done
Runda Arhiva educationala Marime 1.06 kb
class MaxSubSum:

	  arr = []
	  len = 0

	  def __init__(self, arr = 0):

	  	  self.read()
	  	  self.run()

	  def read(self):
	  	  f = open('ssm.in','r')
	  	  lines = f.readline()
	  	  self.len = int(lines)
	  	  self.arr = [0] * int(lines)
	  	  our_seq = f.readline().split("\n")
	  	  our_seq = our_seq[0].split(" ")
	  	  for i in range(0, int(lines)):
	  	  	  self.arr[i] = int(our_seq[i])
	  def run(self):
	      start = 0
	      end = -1
	      possibleStart = 0
	      maxsum = self.arr[0]
	      currentSum = 0

	      for i in range(0, self.len):
	      	  if currentSum < 0:
	      	     possibleStart = i 
	      	  currentSum = max(currentSum + self.arr[i], self.arr[i])
	      	  if currentSum > maxsum:
	      	  	  maxsum = currentSum
	      	  	  start = possibleStart
	      	  	  end = i
	      self.write(maxsum,start+1,end+1)

	  def write(self, maxsum, start, end):
	      f = open('ssm.out','w')
	      f.write(str(maxsum))
	      f.write(' ')
	      f.write(str(start))
	      f.write(' ')
	      f.write(str(end))
	      f.close()
	   
ob = MaxSubSum()