На форумі обговорюються лише питання, пов'язані з олімпіадою
Ви не зайшли.
Rybak написав:
Еще можно предложить отдельно рассматривать программы на, так сказать, абстрактном паскале, т.е. без аппаратной привязки. Я имею ввиду использование таблицы символов ASCII. Я не уверен что chr(34) даже сейчас выдаст кавычку на любой платформе, а использование chr значительно расширяет возможности. Давайте еще попробуем без этого.
если писать на абстрактном Паскале, то в нём нет ограничений на длину строки в программе. (поэтому все мои программы в одну строку)
без решёток:
CONST S:STRING='''CONST S:STRING=;BEGIN WRITE(COPY(S,2,??)+s[1]+S[1]+S+s[1]+COPY(S,??,??));END.'
;BEGIN WRITE(COPY(S,2,??)+s[1]+s[1]+S+s[1]+COPY(S,??,??));END.
Вместо вопросов надо написать числа, но лень считать...
Відредаговано ROBOT (2005-10-31 09:38:18)
Поза форумом
И последний вариант
var v:string;begin v:='''ar v:string;begin v:=;insert(v,v[1]+v[1]+v+v[1],23);v[1]:=v[5];write(v);end.';insert(v,v[1]+v[1]+v+v[1],23);v[1]:=v[5];write(v);end.
Думаю больше сжать нельзя
P.S. - язык Ретро создавать не обязательно, на Бейсике можно написать пустую порграмму
Відредаговано ROBOT (2005-11-01 14:42:10)
Поза форумом
От вот у меня решение на 100% соотв. условию:
#include <stdio.h>
#define x(a) a,#a
void main()
{
printf( x("\n#include <stdio.h>\n\n#define x(a) a,#a\n\nvoid main()\n{\n\tprintf( x(\x25s) );\n}") );
}
Відредаговано JohnGotty (2005-11-04 09:53:22)
Поза форумом
ROBOT написав:
И последний вариант
var v:string;begin v:='''ar v:string;begin v:=;insert(v,v[1]+v[1]+v+v[1],23);v[1]:=v[5];write(v);end.';insert(v,v[1]+v[1]+v+v[1],23);v[1]:=v[5];write(v);end.
Да уж, тут остается только аплодировать, поздравляю!
Можно уменьшить на 2 символа, т.к. точка с запятой перед end'ом не нужна, но сути это не меняет. Ух!
Поза форумом
JohnGotty написав:
От вот у меня решение на 100% соотв. условию:
#include <stdio.h>
#define x(a) a,#a
void main()
{
printf( x("\n#include <stdio.h>\n\n#define x(a) a,#a\n\nvoid main()\n{\n\tprintf( x(\x25s) );\n}") );
}
С++ рулит
Красиво! Как раз получилось - 2 лучших решения в соседних постах.
Поза форумом
Я укоротил решение JohnGotty:
#include<stdio.h> #define x(a) a,#a main(){printf(x("#include<stdio.h>\n#define x(a) a,#a\nmain(){printf(x(\45s));}"));}
Відредаговано reiten (2005-11-06 17:55:29)
Поза форумом