1 input “Число предприятий и количество лет”;N,K
2 if N<1 or k<1 then 1
3 dim naz$(n),v(n,k)
for i=1 to n
print “Предприятие”;i
6 input “Введите название”;
naz$(i)
7 for j=1 to k
8 print “год” ;j
9 input “Введите объем выпуска”;
10 v(I,j)
11 next j,i
12 print “Максимальные периоды увеличения выпуска”
13 print “Предприятие”,”Начало”,”Конец”
14 for i=1 to n
15 l=0
16
17 for j=2 to k
18
19
20 next j
21
22 next i
23 if f=0 then print “Таких нет”
24 end
Олимпиадная задача на бейсике
Известны объемы выпуска продукции N предприятиями за каждый год из последних K(N и K-заданы).Последний год 1998.Найти для каждого предприятия максимальный период, в течении которого непрерывно увеличивало объем а именно, определить с какого по какой год длился этот период не может длиться менее одного года.
Примечание: Для решения задачи приведена программа с пропущенными строками. Необходимо в ответе записать содержимое пустых строк, которое сделает программу правильной. Строка - один оператор. Количество и нумерацию строк не менять.
Код:
Думаю в 16 строке какая то переменная.
в 21 уверен что вывод с какого по какой период.
Но как в двух строкая (т.е двумя операторами) можно найти максимальный период я вообще не понимаю?
С горем пополам можно найти период который встретиться первым например:
21 23 25 -идет возрастание и все нормально работает но если:
21 22 19 23 24 25 то получаеться что 21 22 максимальный хотя на самом деле максимальным являеться 23 24 25.
Мучался 2 часа над задачей так и не смог решить.
Народ подскажите что нибудь.
ну что никто не подаст мысль?
бейсик вообще не помню... там как-то можно в одной строчке несколько операторов писать...
имхо так будет работать
16 s = 1
18 if (v(i,j) > v(i, j-1)) then s = s + 1 else l = s
19 if s = l then s = 1
21 print naz(i), l+1, k - s + 1
не тестил) но после 3х банок пива прогон в голове показал что работает)))
в случае одинаковых по длине найдёт последний
в худшем случае когда послед-ть невозрастающая, тоже выдаст последний