Здравствуйте, <Аноним>, Вы писали:
А>Здравствуйте, Трурль, Вы писали:
Т>>Здравствуйте, Аноним, Вы писали:
А>>>Добавил все возможные языки — можно тестить. =) Т>>whitespace забыли
А>админ убрал у них статистика может навернуться при 0 ... А>Надо было мне Judge по другому писать +1 прибавить ..
Поправь условие, пожалуйста. Во-первых
t – number of test cases [t < 1000]
Во-вторых, надо бы добавить, что whitespace использовать нельзя.
Здравствуйте, Нэчер, Вы писали:
Н>Здравствуйте, _DAle_, Вы писали:
_DA>>Ну вот, обогнал А мои месаги не видны что ли? Я вроде еще раньше пример с глобальными переменными постил.
Н>Их я впервые увидел здесь
Здравствуйте, Нэчер, Вы писали:
Н>Здравствуйте, Нэчер, Вы писали:
Н>>Здравствуйте, _DAle_, Вы писали:
_DA>>>Ну вот, обогнал А мои месаги не видны что ли? Я вроде еще раньше пример с глобальными переменными постил.
Н>>Их я впервые увидел здесь
Здравствуйте, _DAle_, Вы писали:
_DA>Во-вторых, надо бы добавить, что whitespace использовать нельзя.
Надо изменить требования к подсчёту. Сказать, что пробелы и переводы строк УЧИТЫВАЮТСЯ, и пусть народ сам выжимает всё возможное.
Ибо в паскале пробелы являются служебными символами: сравни
if true then x:=0;
iftruethenx:=0;
а в Си и переводы строк кое-где (в #инструкциях) существенны.
Вот тогда и будет очевидно, что whitespace (будучи очень низкоуровневым языком) проиграет, наряду с brainfuck и т.п.
Н>>Здравствуйте, Сергей, Вы писали:
С>>>Здравствуйте. С>>>Осмелюсь предложить такую задачу:
С>>>
С>>>Вам дан набор чисел, найдите сумму всех положительных чисел в нем.
С>>>Входные данные
С>>>В первой строке записано количество чисел N (0 <= N <= 1000).
С>>>Затем следует N целых чисел, по модулю не превосходящих 1000.
С>>>Выходные данные
С>>>Выведите единственное целое число -- сумму положительных чисел из данного набора.
С>>>Ввод: stdin
С>>>Вывод: stdout
С>>>
С>>>При подсчете размера исходника не учитываются символы с кодом <= 32.
С>>>Это задача с нашего университетского соревнования. Пока (и довольно давно) там побеждают дельфисты — 76 байт. Мне удалось написать решение для BCC 5.5 размером 76 байт, но оно не компилируется на предлагаемх VC7.1, GCC3.
Вот хакерский Си вариант программы длинной в 70 байт, прошедший проверку https://spoj.sphere.pl/ranks/SIZECON/
(В таблице результатов он имеет длинну 77 символов из-за return!printf("%d",s))
Если вы попытаетесь запустить этот код на своей машине, то скорее всего получите неверный результат.
Это связано с порядком следования переменных в памяти. Измините 's' на 'i' в тексте программы (изменение порядка объявления может ничего не дать) и у вас все получится.
Здравствуйте, Alex Alexandrov, Вы писали:
AA>Здравствуйте, Кодт, Вы писали:
К>>А кто будет обнулять s?
AA>Есть воспоминание (не могу найти в стандарте), что глобальные переменные автоматически инициализуруются нулями.
Не знаю, как насчет стандарта, но практически так оно и есть (в контексте x86/BCC/GCC/VC, не распространять на другие платформы/компиляторы ).
Re[6]: Size-contest
От:
Аноним
Дата:
27.06.05 05:37
Оценка:
Здравствуйте, Кодт, Вы писали:
К>Здравствуйте, _DAle_, Вы писали:
_DA>>Во-вторых, надо бы добавить, что whitespace использовать нельзя.
К>Надо изменить требования к подсчёту. Сказать, что пробелы и переводы строк УЧИТЫВАЮТСЯ, и пусть народ сам выжимает всё возможное. К>Ибо в паскале пробелы являются служебными символами: сравни К>
К>if true then x:=0;
К>iftruethenx:=0;
К>
К>а в Си и переводы строк кое-где (в #инструкциях) существенны.
К>Вот тогда и будет очевидно, что whitespace (будучи очень низкоуровневым языком) проиграет, наряду с brainfuck и т.п.
Так и есть вот в этой задаче: http://spoj.sphere.pl/problems/KAMIL/
Я сделал условие таким же как дано в условии, здесь на rsdn.ru, хотя учитывать все символы мне тоже кажется более логичным.
Re[5]: Size-contest
От:
Аноним
Дата:
27.06.05 05:39
Оценка:
Здравствуйте, _DAle_, Вы писали:
_DA>Здравствуйте, <Аноним>, Вы писали:
А>>Здравствуйте, Трурль, Вы писали:
Т>>>Здравствуйте, Аноним, Вы писали:
А>>>>Добавил все возможные языки — можно тестить. =) Т>>>whitespace забыли
А>>админ убрал у них статистика может навернуться при 0 ... А>>Надо было мне Judge по другому писать +1 прибавить ..
_DA>Поправь условие, пожалуйста. Во-первых _DA>
_DA>t – number of test cases [t < 1000]
_DA>Во-вторых, надо бы добавить, что whitespace использовать нельзя.
Не понял, что исправить.
Whitespace просто нет в списке возможных языов для данной задачи, этого ИМХО достаточно. =)
Здравствуйте, <Аноним>, Вы писали:
_DA>>Поправь условие, пожалуйста. Во-первых _DA>>
_DA>>t – number of test cases [t < 1000]
_DA>>Во-вторых, надо бы добавить, что whitespace использовать нельзя.
А>Не понял, что исправить.
Ну как что. Нет там никаких "test cases". Там число N вводится, а потом N чисел, а в условии посмотри, что написано.
А>Whitespace просто нет в списке возможных языов для данной задачи, этого ИМХО достаточно. =)
Объяснишь потом это людям, которые напишут на whitespace прогу, а потом обломаются на списке языков
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[7]: Size-contest
От:
Аноним
Дата:
27.06.05 08:16
Оценка:
Здравствуйте, _DAle_, Вы писали:
_DA>Здравствуйте, <Аноним>, Вы писали:
_DA>>>Поправь условие, пожалуйста. Во-первых _DA>>>
_DA>>>t – number of test cases [t < 1000]
_DA>>>Во-вторых, надо бы добавить, что whitespace использовать нельзя.
А>>Не понял, что исправить. _DA>Ну как что. Нет там никаких "test cases". Там число N вводится, а потом N чисел, а в условии посмотри, что написано.
Ну вот это первое число и есть t. А затем t чисел.
А>>Whitespace просто нет в списке возможных языов для данной задачи, этого ИМХО достаточно. =)
_DA>Объяснишь потом это людям, которые напишут на whitespace прогу, а потом обломаются на списке языков
К>#define R (scanf("%d",&t),t>0?t:0)
К>main(){int t,n=R,s=0;for(;n--;s+=R);printf("%d",s);}
К>
К>Что-то не получается меньше 87 символов (включая 3 обязательных пробела и 1 LF).
А
#include <stdio.h>
почему не считается?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Самые прикольные решения:
PERL:
16 символов — код сюда выложить не могу так как он содержит нечитаемые символы, все основано на операторе "s". Очень забавно выглядит, все в квадратиках. =)
21 символ:
print 0+ map 1..<>,1..<>
LISP:
47 символов:
(print (loop repeat (read)
for r = (read)
if (> r 0)
sum r))
HASK:
58 символов:
g(x:y)=take x y
main=interact $ show.sum.g.map (max 0.read).words
С++:
74 символа:
#include<algo.h>
int n,j,s;
main()
{
for (cin >> n; n--;)
cin >> j,
s += j *= j>0;
cout << s;
}