ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1493. В одном шаге от счастья

Tests
Послано MOPDOBOPOT 18 янв 2009 22:15
Please, give me some tests, i don't know, what wrong in my program(
Re: Tests
Послано strider 19 янв 2009 06:14
725049  No
725870  No
727870  Yes
Tests
Послано MOPDOBOPOT 16 фев 2009 19:38
My solution:
                            ***
program lam;
var st,s1,s2,ins: string; e1,e2,k,n2,n1,e,z,q,i: integer;
begin
readln(st);
z:=0;
if st[1]='0' then begin
q:=1;
for i:=2 to 5 do begin
if st[i]='0' then inc(q);
if st[i]<>'0' then break;
end;
end;
val(st,e,k);
n1:=e+1; n2:=e-1;
str(n1,s1); str(n2,s2);
if q=1 then begin
ins:='0'; insert(ins,s1,1);
end;
if q=2 then begin
ins:='00'; insert(ins,s1,1);
end;
if q=3 then begin
ins:='000'; insert(ins,s1,1);
end;
if q=4 then begin
ins:='0000'; insert(ins,s1,1);
end;
if q=5 then begin
ins:='00000'; insert(ins,s1,1);
end;
if q=1 then begin
ins:='0'; insert(ins,s2,1);
end;
if q=2 then begin
ins:='00'; insert(ins,s2,1);
end;
if q=3 then begin
ins:='000'; insert(ins,s2,1);
end;
if q=4 then begin
ins:='0000'; insert(ins,s2,1);
end;
if q=5 then begin
ins:='00000'; insert(ins,s2,1);
end;
val(copy(s1,1,3),e1,k);
val(copy(s1,4,3),e2,k);
if (e1 mod 10)+((e1 mod 100) div 10)+(e1 div 100)=(e2 mod 10)+((e2 mod 100) div 10)+(e2 div 100) then
z:=1;
val(copy(s2,1,3),e1,k);
val(copy(s2,4,3),e2,k);
if (e1 mod 10)+((e1 mod 100) div 10)+(e1 div 100)=(e2 mod 10)+((e2 mod 100) div 10)+(e2 div 100) then
z:=1;
if z=1 then writeln('YES') else writeln('NO');
end.
                            ***
Re: Tests
Послано Rudnev Vladimir 1 мар 2010 22:04
очень большое и глупое решение, гораздо проще вот так:

function prov(n:longint):integer;
var a1,a2,a3,b1,b2,b3:integer;
begin
a1:=n div 100000;
a2:=n div 10000 mod 10;
a3:=n div 1000 mod 10;
b1:=n div 100 mod 10;
b2:=n div 10 mod 10;
b3:=n mod 10;
if b1+b2+b3=a1+a2+a3 then prov:=1 else prov:=2;
end;
var n,n1,n2:longint;
begin
read(n);
n1:=n+1;
n2:=n-1;
if (prov(n1)=1)or(prov(n2)=1) then writeln('Yes') else writeln('No');
end.
sorry for russian.
P.S. Time 0.031 Memory 118
Re: Tests
Послано HaiyangZheng 3 окт 2012 20:42
725870 why No??
Re: Tests
Послано NiF 28 окт 2012 02:38
725870 + 1 = 725871 (14 != 16)
725870 - 1 = 725869 (14 != 23)
Re: Tests
Послано Muzaffardjan Karaev 15 май 2013 17:31
Why 727870 "yes"