IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Вилли и Дилли, Ещё одна задачка с того же сайта)
сообщение
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


В доме Вилли установили скоростной лифт новой экспериментальной модели. В этом лифте кнопки с номерами этажей заменены двумя другими кнопками. При нажатии на первую кнопку лифт поднимается на один этаж вверх, а при нажатии на вторую – опускается на один этаж вниз.

Младшему брату Вилли Дилли очень нравится кататься на новом лифте. Он катается на нём до тех пор, пока не побывает на каждом из этажей хотя бы по одному разу. После этого Дилли довольный возвращается домой.

Зная порядок, в котором Дилли нажимал на кнопки лифта, попробуйте определить общее количество этажей в доме Вилли и Дилли.

Входные данные

Первая строка входного файла INPUT.TXT содержит последовательность нажатий на кнопки лифта. Символ «1» означает, что была нажата первая кнопка, а символ «2» – что была нажата вторая кнопка. Символы «1» и «2» не разделены пробелами. Количество нажатий не превосходит 100. Гарантируется, что лифт никогда не опускался ниже первого и не поднимался выше последнего этажа.

Выходные данные

В выходной файл OUTPUT.TXT следует вывести одно число – количество этажей в доме Вили и Дилли.

Парочка примеров к задаче:
1) 11 ---> 3
2) 21212 ---> 2
3) 1221221221221 ---> 6

Вот код программы, который я сделал)
program N_296;
var i,j,k,n,m:longint;
S:string;
Begin
assign (input,'input.txt');
reset (input);
assign (output,'output.txt');
rewrite (output);
Read (S);
n:=1;
k:=1;
For j:=1 to length(S) do
Begin
n:=n+1;
If m=length(S) then break;
For i:=1 to length(S) do
Begin
If S[i]='1' then Begin
k:=k+1;
If k-1=length(S) then m:=i;
End
else Begin
k:=k-1;
If k-1=length(S) then m:=i;
End;
If k<=0 then Begin
k:=n;
break;
End;
End;
End;
Write (k);
End.


Добавлено через 1 мин.
Помогите найти ошибку или просто разъясните мне эту задачу)


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Уникум
*******

Группа: Пользователи
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Извини, в твоем решении я до конца разбираться не стал. Нельзя так переусложнять простые вещи..
Ты представь себе сам процесс. Что в нем существенно? Существенно, какие этажи были крайние.
Текущий этаж легко проследить. Дальше найди максимум и минимум. Вычти второе из первого, накинь один (лифтеру на чай)) - и все!
Ты и сам мог бы все это осуществить, но я тебе приведу полное решение с единственной целью: посмотри на правильное форматирование программы и постарайся следовать этим правилам. Это тебе сильно поможет.
var
i,n,max,min: integer;
S: string;

begin
assign (input,'input.txt');
reset (input);
assign (output,'output.txt');
rewrite (output);
Read (S);
n:=0; // current level, counting from the start level
max:=0;
min:=0;
for i:=1 to length(S) do begin
if S[i]='1' then Inc(n) else Dec(n);
if n>max then max:=n else if n<min then min:=n
end;
Write (max-min+1)
end.



--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 195
Пол: Мужской
Реальное имя: Сергей

Репутация: -  2  +


Спасибо!


--------------------
♣♣♣
"Себя великим не считай, гордясь величьем предков,
Величья не добудешь ты и золота ценою!
Хоть светит на небе луна, но отраженным светом -
Чужою славой не живи, не будь второй луною!!!"
♣♣♣
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 5.05.2024 23:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name