Участник:Easik/REPROAD

Материал из DISCOPAL
< Участник:Easik
Версия от 21:53, 19 декабря 2020; Easik (обсуждение | вклад) (Новая страница: «* https://www.spoj.com/problems/REPROAD/ '''Python 3 (python 3.7.3)''' <code-python> import re import sys import numpy as np def main(t, n_arr, k_arr, num_arr…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Python 3 (python 3.7.3)

import re
import sys
import numpy as np
 
 
def main(t, n_arr, k_arr, num_arr):
 
	for i in range(t):
 
		n = n_arr[i]
		k = k_arr[i]
		nums = num_arr[i]
 
		front = 0
		back = 0
		max_len = 0
		zeros = 0
 
		while back < n:
 
			if nums[back] == 0:
				zeros += 1
 
			if zeros <= k:
				max_len = max(back - front + 1, max_len)
 
			else:
				while (zeros > k) & (front < back):
					if nums[front] == 0:
						zeros -= 1
 
					front += 1
 
			back += 1
 
		print(max_len)
 
 
text = sys.stdin.read()
text_splited = re.findall('\d+', text)
all_input_numbers = list(map(int, text_splited))
 
i = 0
t = int(all_input_numbers[i])
i += 1
 
n_arr = np.zeros(t).astype(int)
k_arr = np.zeros(t).astype(int)
num_arr = np.zeros((t, 10000)).astype(int)
 
for j in range(t):
 
	n_arr[j] = int(all_input_numbers[i])
	i += 1
 
	k_arr[j] = int(all_input_numbers[i])
	i += 1
 
	for m in range(n_arr[j]):
		num_arr[j][m] = all_input_numbers[i]
		i += 1
 
main(t, n_arr, k_arr, num_arr)