Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.07.2012, 12:41   #31
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
  until a+b<=''
знак меньше можно смело убрать
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.07.2012, 16:33   #32
volvo877
Форумчанин
 
Аватар для volvo877
 
Регистрация: 01.06.2009
Сообщений: 108
По умолчанию

Цитата:
Как еще уменьшить код я не знаю. Если у кого получится, пишите.
Легко:
Код:
var a,b:string;s:^string;
begin
  reset(input, 'input.txt');
  rewrite(output, 'output.txt');
  readln(a);
  read(b);
  repeat
    s:=@a;
    if a+'A'>b+'B' then s:=@b;
    write(s^[1]);
    delete(s^,1,1);
  until a+b=''
end.
Размер = 179, Accepted

volvo877 вне форума Ответить с цитированием
Старый 23.07.2012, 21:19   #33
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Господа, ОГРОМНОЕ спасибо! Теперь моё решение кажется танком(не сточки зрения "непробиваемости", а громоздкости), хотя можно было обойтись велосипедом.


И УРААААА решение выше заняло 2 место ТОПа, кстати 1 места занял тоже старый добрый Паскаль, на 1 байт обогнали....
UPD
Господа, у нас почетное 2 место, с результатом 178(= 1 место)! Ура, Ура, Ура!
Код:
delete(s^,1,1);
И кстати задачи компилируются на Дельфе => возможно получиться вырвать 1 байт с помощью PString (просто дельфи 1 раз в жизни вижу..)
Вот еще код (= код Plague), но только с одной развилкой (кол-во символов =)
Код:
var a,b,s:string;
begin
  reset(input, 'input.txt'); 
  rewrite(output, 'output.txt');
  readln(a);
  read(b);
  repeat
    s:=a;
    if a+'A'>b+'B' then begin 
        s:=b;
        Delete(b,1,1);
    end
    else
        Delete(a,1,1);
    write(s[1])
  until a+b<=''
end.

Последний раз редактировалось Poma][a; 23.07.2012 в 22:10.
Poma][a вне форума Ответить с цитированием
Старый 26.07.2012, 21:17   #34
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

И снова день добрый, судари! Вот возник вопрос : а почему надо в конец строки (в развилке) добавить 'a' или 'b' ? Без данных буков цикл становиться вечным...
Не могли бы Вы прокомментировать данный факт?
И еще 1 вопрос не могут ли возникнуть ошибки из-за разницы 'a' и 'b'?(не обязательно в данной задаче)
Poma][a вне форума Ответить с цитированием
Старый 27.07.2012, 14:39   #35
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Эти a и b как раз и есть самая большая хитрость тут )). Поиграй с ними. Попробуй поменять их местами, или поставть одинаковые буквы, а также другие буквы/символы.. Если не сможешь разобраться, поясним, но подумать самому будет очень полезно.
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 27.07.2012, 15:03   #36
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

Главное чтобы ord('символа') была больше ord('9'), а символы без разницы какие.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Старый 27.07.2012, 18:05   #37
s-andriano
Старожил
 
Аватар для s-andriano
 
Регистрация: 08.04.2012
Сообщений: 3,229
По умолчанию

Цитата:
Сообщение от Poma][a Посмотреть сообщение
И снова день добрый, судари! Вот возник вопрос : а почему надо в конец строки (в развилке) добавить 'a' или 'b' ?
Потому что простое сравнение "почти" совпадающих строк разной длины (т.е. короткая строка совпадает с началом длинной) дает неподходящий для данной задачи результат - короткая строка считается меньше.
s-andriano вне форума Ответить с цитированием
Старый 01.08.2012, 20:49   #38
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Итак :
1) Прошу прощения за некропостинг(в его слабой мере проявления), и так с тяжелым боем пробился к своей вычислительной единице.(Как не когда сказал великий полководец : "Ещё одна такая победа, и я останусь без" своей главной любви...)
2) Методом проб и ошибок удалось вывести следующую гипотезу :
Совершенно по барабану данному алгоритму какая буква, она нужна лишь для предотвращения не правильного результат, при моменте, когда а или b = ''.
Тоесть при смене букв на :
Код:
А     А
А     B
B     A
и прочее
результат был правильным.
Poma][a вне форума Ответить с цитированием
Старый 03.08.2012, 06:45   #39
Poma][a
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 3,882
По умолчанию

Не могли бы Вы опровергнуть или подтвердить данную ситуацию?
Poma][a вне форума Ответить с цитированием
Старый 03.08.2012, 06:55   #40
Plague
Забанен
Форумчанин Подтвердите свой е-майл
 
Аватар для Plague
 
Регистрация: 01.11.2006
Сообщений: 420
По умолчанию

#36 пост, прочитайте еще раз.
Говорилось об этом уже давно.
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
Plague вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему то не считает минимальное число Alekzinder Помощь студентам 0 06.05.2012 02:18
минимальное число членов сумма которых АнюточкаАА Паскаль, Turbo Pascal, PascalABC.NET 1 10.04.2012 19:33
Минимальное число выше главной диагонали... Oliveyra Общие вопросы C/C++ 9 21.04.2011 22:31
Минимальное число Progs1024 Паскаль, Turbo Pascal, PascalABC.NET 14 11.10.2009 21:21