На автобусных билетах указываются их номера. Номера всех билетов всегда записываются при помощи одного и того же количества цифр, при этом число используемых цифр чётно. При необходимости числа дополняются ведущими нулями. К примеру, если для записи используют 4 цифры, то 514 будет записано как 0514 . Билеты отпечатаны на лентах, билеты на каждой ленте нумеруются подряд числами от 00...01 до 99...99. Счастливым считается тот билет, у которого сумма цифр первой половины равна сумме цифр второй половины, например, билеты 1001 и 123051 счастливые, а 7778 и 39 – нет.


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


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

В первой и единственной строке входного файла содержится номер Диминого билета N , записанный с ведущими нулями. Количество цифр в записи числа N не превосходит 100 000 и чётно.


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

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


Ответы

Ответ дал: kira07301
0

USES CRT;

VAR m1,m2,n,n1,n2,n3,n4,n5,n6,s1,s2:LongInt;

BEGIN

ClrScr;

  WriteLn('Vvedite nomer bileta: ');

  ReadLn(n);

  m1:=n div 1000;

   n1:=m1 div 100;

   n2:=m1 mod 10;

   n3:=(m1-n1*100-n2) div 10;

  s1:=n1+n2+n3;

  m2:=n mod 1000;

   n4:=m2 div 100;

   n5:=m2 mod 10;

   n6:=(m2-n4*100-n5) div 10;

  s2:=n4+n5+n6;

  if s1=s2 then WriteLn('Bilet schaslivyi')

                else WriteLn('Bilet ne schaslivyi');

ReadLn

END.

Вас заинтересует