A non-empty array A consisting of N integers is given. A pair of integers (P, Q), such that 0 ≤ P < Q < N, is called a slice of array A (notice that the slice contains at least two elements). The average of a slice (P, Q) is the sum of A[P] + A[P + 1] + ... + A[Q] divided by the length of the slice. To be precise, the average equals (A[P] + A[P + 1] + ... + A[Q]) / (Q − P + 1).
For example, array A such that:
A[0] = 4 A[1] = 2 A[2] = 2 A[3] = 5 A[4] = 1 A[5] = 5 A[6] = 8contains the following example slices:
- slice (1, 2), whose average is (2 + 2) / 2 = 2;
- slice (3, 4), whose average is (5 + 1) / 2 = 3;
- slice (1, 4), whose average is (2 + 2 + 5 + 1) / 4 = 2.5.
The goal is to find the starting position of a slice whose average is minimal.
Write a function:
def solution(A)
that, given a non-empty array A consisting of N integers, returns the starting position of the slice with the minimal average. If there is more than one slice with a minimal average, you should return the smallest starting position of such a slice.
For example, given array A such that:
A[0] = 4 A[1] = 2 A[2] = 2 A[3] = 5 A[4] = 1 A[5] = 5 A[6] = 8the function should return 1, as explained above.
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [2..100,000];
- each element of array A is an integer within the range [−10,000..10,000].
Invalid result type, int expected, <class 'NoneType'> found.stdout:
[4, 2]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
while True:
now_avg = sum(A[start_num: start_num + 2])/2
avg_num = min(avg_num, now_avg)
start_num += 1
if start_num + 2 ==
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
while True:
now_avg = sum(A[start_num: start_num + 2])/2
avg_num = min(avg_num, now_avg)
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
if length_A == 2:
return (A[0]+ A[1])/2
while True:
now_avg = sum(A[start_num: start_num + 2])/2
avg_num = min(avg_num, now_avg)
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
avg_num = min(avg_num, now_avg)
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
now_num = 0
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
avg_num = min(avg_num, now_avg)
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
now_num = 0
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num >= now_avg:
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
now_num = 0
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
now_num = 0
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num = now_avg
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
now_num = 0
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , now_num = now_avg
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
small_start_num = 0
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
small_start_num = 0
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg,
start_num += 1
if start_num + 2 >=
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
small_start_num = 0
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg,
start_num += 1
if start_num + 2 >= length_A:
break
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
small_start_num = 0
if length_A == 2:
return 0
while True:
print(start_num)
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 >= length_A:
break
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
small_start_num = 0
if length_A == 2:
return 0
while True:
print(A[start_num: start_num + 2])
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 >= length_A:
break
Invalid result type, int expected, <class 'NoneType'> found.stdout:
[4, 2] [2, 2] [2, 5] [5, 1] [1, 5]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
small_start_num = 0
if length_A == 2:
return 0
while True:
print(A[start_num: start_num + 2])
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
Invalid result type, int expected, <class 'NoneType'> found.stdout:
[4, 2] [2, 2] [2, 5] [5, 1] [1, 5] [5, 8]
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
small_start_num = 0
if length_A == 2:
return 0
while True:
print(A[start_num: start_num + 2])
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num = 0
avg_num = 1000000
length_A = len(A)
small_start_num = 0
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
print(avg_num, small_start_num)
Invalid result type, int expected, <class 'NoneType'> found.stdout:
2.0 1
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
print(avg_num, small_start_num)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
now_avg = sum(A[])
print(avg_num, small_start_num)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
now_avg = sum(A[start_num: start_num + 3])/3
print(avg_num, small_start_num)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
now_avg = sum(A[start_num: start_num + 3])/3
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 3 > length_A:
break
print(avg_num, small_start_num)
Invalid result type, int expected, <class 'NoneType'> found.stdout:
2.0 1
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
print()
now_avg = sum(A[start_num: start_num + 3])/3
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 3 > length_A:
break
print(avg_num, small_start_num)
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
print(A[start_num: start_num + 3])
now_avg = sum(A[start_num: start_num + 3])/3
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 3 > length_A:
break
print(avg_num, small_start_num)
Invalid result type, int expected, <class 'NoneType'> found.stdout:
[4, 2, 2] [2, 2, 5] [2, 5, 1] [5, 1, 5] [1, 5, 8] 2.0 1
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
#print(A[start_num: start_num + 3])
now_avg = sum(A[start_num: start_num + 3])/3
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 3 > length_A:
break
print(avg_num, small_start_num)
Invalid result type, int expected, <class 'NoneType'> found.stdout:
2.0 1
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
#print(A[start_num: start_num + 3])
now_avg = sum(A[start_num: start_num + 3])/3
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 3 > length_A:
break
return start_num
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
#print(A[start_num: start_num + 3])
now_avg = sum(A[start_num: start_num + 3])/3
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 3 > length_A:
break
return small_start_num
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
#print(A[start_num: start_num + 3])
now_avg = sum(A[start_num: start_num + 3])/3
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 3 > length_A:
break
return small_start_num
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
#print(A[start_num: start_num + 3])
now_avg = sum(A[start_num: start_num + 3])/3
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 3 > length_A:
break
return small_start_num
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
def solution(A):
start_num, small_start_num, avg_num= 0 , 0 , 1000000
length_A = len(A)
if length_A == 2:
return 0
while True:
now_avg = sum(A[start_num: start_num + 2])/2
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 2 > length_A:
break
start_num = 0
while True:
#print(A[start_num: start_num + 3])
now_avg = sum(A[start_num: start_num + 3])/3
if avg_num > now_avg:
avg_num , small_start_num = now_avg, start_num
start_num += 1
if start_num + 3 > length_A:
break
return small_start_num
The solution obtained perfect score.