![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 21.05.2014
Сообщений: 121
|
![]()
Всем привет!
Я решил задачу, но на тестировании не прошло 7 тест ![]() Задача C. Номер страницы Имя входного файла: number.in Имя выходного файла: number.out Ограничение по времени: 2 секунды Ограничение по памяти: 256 мегабайт Однажды робот-библиотекарь решил устроить ревизию. На одной из полок, среди экземпляров тридцать третьего издания Кормена, он нашел листок из условий одного древнего контеста. Роботу известен формат оформления условий, однако этот листок привел его в замешательство. Обычно внизу каждой страницы условий есть надпись вида «Страница i из n», где i — номер страницы условий, а n — количество страниц в условиях. Однако на этом листе была всего одна длинная последовательность цифр. Видимо, принтер почему-то не напечатал ни одного символа кроме цифр. Таким образом, номера i и n слились в единую последовательность цифр. Теперь понять, какой же был номер у найденной страницы, стало большой проблемой, и решений у этой задачи может быть много. Роботу стало интересно, сколько существует решений, но так как робот не предназначен для решения таких задач, он нуждается в вашей помощи. Страницы в условиях нумеруются от 1 до n, числа i и n записываются без ведущих нулей. Выясните, сколько есть корректных надписей вида «Страница i из n», при удалении из которых всех символов кроме цифр получается заданная во входном файле строка. Формат входного файла Входной файл содержит строку, состоящую только из цифр. Длина строки лежит в пределах от 1 до 200 000, включительно. Формат выходного файла Выведите количество корректных надписей вида «Страница i из n», при удалении из которых всех символов кроме цифр получается заданная во входном файле строка. Примеры number.in 23507645 number.out 3 В приведенном примере можно проинтерпретировать строку тремя способами: • «Страница 2 из 3507645» • «Страница 23 из 507645» • «Страница 2350 из 7645» Вот мой код: Код:
![]() Задачу решил! Огромное спасибо BDA и Аватар-у за помощь! Вот код: Код:
![]() Последний раз редактировалось VladKB1; 08.03.2015 в 18:57. |
![]() |
![]() |
![]() |
#2 | |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]() Цитата:
![]() По-моему, нужно делать так: Проводить границу после i-го символа. Если i+1 символ "0", то переходить к следующему витку цикла. Если i меньше, чем n-i, то увеличивать счетчик. Если i равно n-i, то сравнить сами строки слева и справа от границы. Цикл нужно делать от 1 до n div 2, где n - длина введенной строки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
|
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 21.05.2014
Сообщений: 121
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 08.03.2015 в 12:05. |
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 21.05.2014
Сообщений: 121
|
![]() Цитата:
![]() Я исправил как мне сказал BDA, но я скорее всего как-то не так написал или вы не правы. У меня не прошёл 9 тест, вот код: Код:
Последний раз редактировалось Stilet; 08.03.2015 в 17:50. |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
За исключением ввода-вывода это весь подсчет
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 08.03.2015 в 14:52. |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 21.05.2014
Сообщений: 121
|
![]() Цитата:
Вот код который послал: Код:
|
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А зачем там все остальное? Кроме ввода-вывода
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 21.05.2014
Сообщений: 121
|
![]()
Я сегодня весь день туплю)) Я вроде бы сделал всё как надо, но не прошло 58 тест
![]() Код:
|
![]() |
![]() |
![]() |
#10 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,322
|
![]()
1) Из-за условий во втором if, первый if уже не нужен
2) Пишут, что сама строка тоже может начинаться на 0, и тогда нужно вывести 0 в качестве ответа.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись
![]() |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ребус (TurboPascal, FreePascal) | VladKB1 | Помощь студентам | 8 | 08.03.2015 14:18 |
Узнать номер страницы в AcroPDF | mishanama | Общие вопросы Delphi | 3 | 20.04.2014 17:03 |
Номер страницы | Gefo | PHP | 1 | 04.04.2012 18:58 |
Номер страницы - проставить | Zirat | Microsoft Office Excel | 9 | 12.11.2009 21:39 |
Как сделать разрыв страницы печати по условию и узнать номер страницы | Leanna | Microsoft Office Excel | 2 | 21.01.2008 06:59 |