ПОЖАЛУЙСТА, РЕШИТЕ ЗАДАЧУ НА PascalABC.net!!!
Вова купил билет в трамвае 13-го маршрута и сразу посчитал суммы первых трёх цифр и последних трёх цифр номера билета (номер у билета шестизначный). Оказалось, что суммы отличаются ровно на единицу. «Я в одном шаге от счастья», — подумал Вова, — «или предыдущий или следующий билет точно счастливый». Прав ли он?
Входные данные
Входной файл INPUT.TXT содержит в первой строке число K – количество тестов. В следующих K строках записаны номера билетов. Количество тестов не больше 10. Номер состоит ровно из шести цифр, среди которых могут быть и нули. Гарантируется, что Вова умеет считать, то есть суммы первых трех цифр и последних трех цифр отличаются ровно на единицу.
Выходные данные
Выходной файл OUTPUT.TXT должен содержать K строк, в каждой из которых для соответствующего теста следует указать "Yes", если Вова прав, и "No", если нет.
Answers & Comments
Verified answer
// PascalАВС.NЕТ 3.9
function Счастливый(Self: string): boolean; extensionmethod :=
Self[:4].Select(c -> c.ToDigit).Sum = Self[4:].Select(c -> c.ToDigit).Sum;
function СчастьеРядом(Self: string): boolean; extensionmethod;
begin
var Номер := Self.ToInteger;
var Предшественник := (Номер - 1).ToString.PadLeft(6, '0');
var Преемник := (Номер + 1).ToString.PadLeft(6, '0');
Result := Предшественник.Счастливый or Преемник.Счастливый
end;
begin
Assign(output, 'output.txt');
ReadAllLines('input.txt')[1:].Select(s -> (if s.СчастьеРядом then 'Yes' else 'No')).PrintLines
end.