Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Олимпиадная задача на бейсике

16K
15 марта 2007 года
Black_Shem
14 / / 08.08.2006
Задача:
Известны объемы выпуска продукции N предприятиями за каждый год из последних K(N и K-заданы).Последний год 1998.Найти для каждого предприятия максимальный период, в течении которого непрерывно увеличивало объем а именно, определить с какого по какой год длился этот период не может длиться менее одного года.

Примечание: Для решения задачи приведена программа с пропущенными строками. Необходимо в ответе записать содержимое пустых строк, которое сделает программу правильной. Строка - один оператор. Количество и нумерацию строк не менять.

Код:
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

Думаю в 16 строке какая то переменная.
в 21 уверен что вывод с какого по какой период.

Но как в двух строкая (т.е двумя операторами) можно найти максимальный период я вообще не понимаю?

С горем пополам можно найти период который встретиться первым например:

21 23 25 -идет возрастание и все нормально работает но если:

21 22 19 23 24 25 то получаеться что 21 22 максимальный хотя на самом деле максимальным являеться 23 24 25.

Мучался 2 часа над задачей так и не смог решить.
Народ подскажите что нибудь.
16K
18 марта 2007 года
Black_Shem
14 / / 08.08.2006
ну что никто не подаст мысль?
271
18 марта 2007 года
MrXaK
721 / / 31.12.2002
а эта прога вообще компилится?
бейсик вообще не помню... там как-то можно в одной строчке несколько операторов писать...
имхо так будет работать
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х банок пива прогон в голове показал что работает)))

в случае одинаковых по длине найдёт последний
в худшем случае когда послед-ть невозрастающая, тоже выдаст последний
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог