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

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

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

 
 Ответить  Открыть новую тему 
> Смарт карточка (
Cheburashka
сообщение 10.05.2009 7:22
Сообщение #1


Бывалый
***

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

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


Мальчик Вася каждый день ездит на метро. Утром он едет в школу, а вечером того же дня, обратно из школы, домой. Для того, чтобы немного сэкономить, он покупает электронную смарт-карту на X поездок. Когда он хочет зайти в метро, он прикладывает карту к турникету. Если на карте осталось ненулевое количество поездок, то турникет пропускает Васю и списывает с карты одну поездку. Если же на карте не осталось поездок, то турникет не пропускает Васю, и он (Вася) вынужден купить на этой же станции новую карту на X поездок и вновь пройти через турникет.

Вася заметил, что в связи с тем, что утром метро переполнено, покупать новую карту утром накладно по времени, и он может опоздать в школу. В связи с этим он хочет понять: будет ли такой день, что с утра, поехав в школу, окажется, что у него на карточке ноль поездок.

Вася больше никуда на метро не ездит и поэтому заходит в метро только на станции около дома и на станции около школы.

Входные данные
Во входном файле INPUT.TXT содержится ровно 2 строки. В первой содержится слово «School» или «Home» в зависимости от того, где первый раз Вася купил карточку на X поездок. Во второй строке содержится натуральное число X, 1 ≤ X ≤ 1000.

Выходные данные
В выходной файл OUTPUT.TXT следует вывести «Yes», если будет такой день, что утром у Васи на карточке окажется ноль поездок и «No» в противном случае.

Вот такая вот задачка)) Можете разъяснить как её решить?


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


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

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

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


Цитата(Сергей Меркурьев @ 10.05.2009 8:22) *
Можете разъяснить как её решить?
Можем.
Но сначала скажи, в чем у тебя затруднение.

Задача - проще некуда. Но есть одна проблема, которая, возможно, тебя смущает.. Я попробую высказать свою догадку, и если это тебе поможет - хорошо, если нет - спрашивай дальше.
Вот тут есть условие задачи (откуда ты, видимо, ее и взял) с примерами входных и выходных данных. Так вот, проблема, как мне кажется, касается примеров выходных данных..
Постарайся понять, что есть два совершенно разных свойства: формат данных и значение данных. В приведенной задаче выходной файл должен иметь определенный формат - он должен содержать одно из слов: "Yes" или "No". Если выходной файл будет содержать слово "Elephant" или число 123 - это значит, что формат неверный. Если же файл содержит "Yes", в то время как правильный ответ задачи "No" - это значит, что формат файла все равно верен, хотя задача решена неверно. Так вот, в примерах выходных данных приведены правильные форматы, в то время как правильность ответа не гарантирована. Это может несколько сбивать с толку, но совершенно нормально, поскольку примеры демонстрируют только формат данных.

Если у тебя остались вопросы по сути задачи - скажи, в чем именно состоит затруднение. Мне как-то не хочется спойлить тут решение задачи с олимпиадного сайта..




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


?
***

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

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


Сергей Меркурьев
а эт случайно не олимпиадная задачка?

а ну да посмотрел на посту выше ссылку (просто сначала ее не заметил)

Сообщение отредактировано: amega - 10.05.2009 8:49
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 10.05.2009 8:48
Сообщение #4


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

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

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


Цитата(amega @ 10.05.2009 9:46) *
а эт случайно не олимпиадная задачка?

amega, трудно пройти по ссылке, которую я привел?


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


?
***

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

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


Lapp

я увидел когда перечитывал сообщение
Цитата
Вот тут есть

прото слова тут очень маленькое и я его не сразу увидел
blush.gif

Сообщение отредактировано: amega - 10.05.2009 11:57
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Cheburashka
сообщение 10.05.2009 14:22
Сообщение #6


Бывалый
***

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

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


Amega в принципе да.
Lapp ну про форматный вывод данных я в принципе знаю, а вот как нужно точно проверять мне не понятно(((

Я проверял наверное глупым способом... и он не проходит потестам...
program N_22;
var X:longint;
S:string;
Begin
assign (input,'input.txt');
reset (input);
assign (output,'output.txt');
rewrite (output);
Readln (S);
Read (X);
If S='Home' then If X mod 2=0 then write ('No')
else If X=1 then Write('Yes')
else Write('No')
else If X mod 2=0 then write ('No')
else If X=1 then Write('No')
else Write('Yes')


End.


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


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

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

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


Цитата(Сергей Меркурьев @ 10.05.2009 15:22) *
как нужно точно проверять мне не понятно(((
Проверяй четность числа Х, предварительно увеличив его на 1, если во входном файле содержится School.
if S='School' then Inc(x);
if Odd(X) then Write('No') else Write('Yes');


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


Бывалый
***

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

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


Что выполняет фунция odd?

Добавлено через 7 мин.
Ладно про odd я нашёл)) А вот я всё равно не понимаю зачем вы таким образом проверяете? И данную проверку нужно проводить с каждым пунктом (дом или школа)?


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


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

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

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


Цитата(Сергей Меркурьев @ 10.05.2009 20:14) *
не понимаю зачем вы таким образом проверяете? И данную проверку нужно проводить с каждым пунктом (дом или школа)?
Нет, не нужно. Это все решение задачи (плюс чтение входных данных).

Ну смотри. Если бы он покупал только дома, то все зависело бы только от четности числа поездок Х. Но он мог купить и в школе. Если он купил в школе, то в тот момент, когда он приехал домой, ситуация неотличима от той, что он как бы купил ДОМА, но НА ОДНУ ПОЕЗДКУ МЕНЬШЕ (эту поездку он потратил на путь домой). Значит, он как бы купил дома карту на Х-1 поездок, причем дома. Вычитание единицы приводит к смене четности - вот и все. Я в своем решении заменил вычитание единицы на прибавление, что для четности абсолютно то же самое (а поскольку числа не превосходят 1000, то с диапазонами тоже все Ок).

Теперь понятнее? Спрашивай, если нет.


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


Бывалый
***

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

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


В принципе понятно но у меня она с таким решением не проходит((
Я её чуть-чуть по другому сделал у меня она застрявает на 10 тесте((

program N_22;
var X:longint;
S:string;
Begin
assign (input,'input.txt');
reset (input);
assign (output,'output.txt');
rewrite (output);
Readln (S);
Read (X);
if S='School' then Inc(x);
If X=1 then Write ('Yes')
else if Odd(X) then Write('No') else Write('Yes')
End.


Сообщение отредактировано: Сергей Меркурьев - 11.05.2009 11:23


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


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

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

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


Цитата(Сергей Меркурьев @ 11.05.2009 12:20) *
она застрявает на 10 тесте
К сожалению, условие задачи сформулировано не лучшим образом, что порождает неверное толкование.. Дело в том, что надо понимать так, что Вася продолжает покупать карточки с тем же самым количеством поездок. И в этом случае, если Х нечетно, то ему, бедняге, гарантировано придется (хотя и через раз) покупать карту утром. Если же Х четно, то все зависит от того, где была куплена первая карта - если в школе, то ему повезло, если дома - я ему не завидую..))

Таким образом, верное решение таково:
  if Odd(x) or (s='Home') then Write(f,'Yes') else Write(f,'No');

Вот так.
Извиняюсь, что сначала повелся на на эту неточность формулировки..


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


Бывалый
***

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

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


Даже с вашим решением как то не очень она хочет идти(((

Добавлено через 7 мин.
Всё спасибо)) Разобрался))
Очень хорошая функция Odd (x), если бы Вы её мне не подсказали то проверял бы я значения на чётность и нечётность следующим образом:
(x mod 2=0) иль же так (x mod 2=1);

Спасибо Вам за помощь)) Думаю, что в скором времени, что нибудь смогу найти новое)))


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


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

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

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


Цитата(Сергей Меркурьев @ 12.05.2009 19:00) *
проверял бы я значения на чётность и нечётность следующим образом:
(x mod 2=0) иль же так (x mod 2=1);
Если честно, ничего плохого в этом не вижу)).
Тебе спасибо за задачу. Полезно иногда пропесочить мозги, чтоб не расслаблялись до такого безобразия.. smile.gif


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


Бывалый
***

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

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


Ну в принципе да)) Можно и тем, и тем способом)


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

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

 



- Текстовая версия 29.04.2024 9:31
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"