Pagini recente » Cod sursa (job #3039598) | Cod sursa (job #2323689) | Cod sursa (job #224983) | Cod sursa (job #2047497) | Cod sursa (job #2670183)
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()