Re[2]: Size-contest
От: Кодт Россия  
Дата: 23.06.05 14:24
Оценка:
Здравствуйте, Socrat, Вы писали:

S>main(){int t,s=0,n;cin>>n;while(n--){cin>>t;if(t>0)s+=t;}cout<<s;}

Забыто #include<iostream.h>
Перекуём баги на фичи!
Re[3]: Size-contest
От: Аноним  
Дата: 23.06.05 14:31
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, Аноним, Вы писали:


А>>Добавил все возможные языки — можно тестить. =)

Т>Ай, какую бяку подсунули в тесте!

А это что бы не халявили ^_^
Re[3]: Size-contest
От: Socrat Россия  
Дата: 23.06.05 14:46
Оценка:
Здравствуйте, Кодт, Вы писали:

К>Здравствуйте, Socrat, Вы писали:


К>
S>>main(){int t,s=0,n;cin>>n;while(n--){cin>>t;if(t>0)s+=t;}cout<<s;}
К>

К>Забыто #include<iostream.h>

Используем опции командной строки

А здесь
Автор: Кодт
Дата: 23.06.05
забыто #include<stdio.h>
Re[4]: Size-contest
От: Кодт Россия  
Дата: 23.06.05 14:56
Оценка:
Здравствуйте, Socrat, Вы писали:

К>>Забыто #include<iostream.h>


S>Используем опции командной строки


Хитёр брат, хитёр!

S>А здесь
Автор: Кодт
Дата: 23.06.05
забыто #include<stdio.h>


Не забыто. Это специфика K&R C.
Перекуём баги на фичи!
Re[2]: Size-contest
От: _DAle_ Беларусь  
Дата: 23.06.05 15:53
Оценка:
Здравствуйте, <Аноним>, Вы писали:

А>Задача готова:

А>https://spoj.sphere.pl/problems/SIZECON/

А>Добавил все возможные языки — можно тестить. =)


Вот за это спасибо
Пока на с++ дожал до 80. Что-то дальше не придумывается, надо крутить.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re[2]: Size-contest
От: Сергей  
Дата: 23.06.05 16:04
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Не против если я эту задачу выложу на сфере? Там куча языков — будет где развернуться =)


Думаю, что никто не обидится
Re: Size-contest_80
От: Нэчер  
Дата: 23.06.05 18:55
Оценка: 1 (1)
Здравствуйте, Сергей, Вы писали:

С>Здравствуйте.

С>Осмелюсь предложить такую задачу:

С>
С>Вам дан набор чисел, найдите сумму всех положительных чисел в нем. 

С>Входные данные
С>В первой строке записано количество чисел N (0 <= N <= 1000). 
С>Затем следует N целых чисел, по модулю не превосходящих 1000. 

С>Выходные данные
С>Выведите единственное целое число -- сумму положительных чисел из данного набора.

С>Ввод: stdin
С>Вывод: stdout
С>


С>При подсчете размера исходника не учитываются символы с кодом <= 32.


С>Это задача с нашего университетского соревнования. Пока (и довольно давно) там побеждают дельфисты — 76 байт. Мне удалось написать решение для BCC 5.5 размером 76 байт, но оно не компилируется на предлагаемх VC7.1, GCC3.


Получилось только 80 (если убрать пробел после int):

main(){for(int s=0,n=0,i,*k=&i;scanf("%d",k),s+=n*=n>0,i--;k=&n);printf("%d",s);}


IMHO, для стандартного С это предел
Re[2]: Size-contest_80
От: _DAle_ Беларусь  
Дата: 23.06.05 21:39
Оценка: 3 (1)
Н>Получилось только 80 (если убрать пробел после int):

Н>
Н>main(){for(int s=0,n=0,i,*k=&i;scanf("%d",k),s+=n*=n>0,i--;k=&n);printf("%d",s);}
Н>


Н>IMHO, для стандартного С это предел


n,j,s,*k=&n;main(){for(;scanf("%d",k),s+=j>0?j:0,n--;k=&j);printf("%d",s);}



А используя твою идею, (за нее отдельное спасибо, смог на с++ уменьшить на 1 байт исходник до 78 вместе с #include )
n,j,s,*k=&n;main(){for(;scanf("%d",k),s+=j*=j>0,n--;k=&j);printf("%d",s);}
Re: Size-contest
От: _DAle_ Беларусь  
Дата: 23.06.05 21:48
Оценка:
Здравствуйте, Сергей, Вы писали:

С>Это задача с нашего университетского соревнования. Пока (и довольно давно) там побеждают дельфисты — 76 байт. Мне удалось написать решение для BCC 5.5 размером 76 байт, но оно не компилируется на предлагаемх VC7.1, GCC3.


Тут http://www.rsdn.ru/Forum/Message.aspx?mid=1238202&amp;only=1
Автор: _DAle_
Дата: 24.06.05
вроде 74 байта на С получилось. Может обгонишь дельфистов А на с++ у меня меньше 78 не получается, там #include нужен.
Re: Size-contest
От: Сергей  
Дата: 23.06.05 21:51
Оценка: 1 (1)
Здравствуйте, Сергей, Вы писали:

С>Здравствуйте.

С>Осмелюсь предложить такую задачу:

С>
С>Вам дан набор чисел, найдите сумму всех положительных чисел в нем. 

С>Входные данные
С>В первой строке записано количество чисел N (0 <= N <= 1000). 
С>Затем следует N целых чисел, по модулю не превосходящих 1000. 

С>Выходные данные
С>Выведите единственное целое число -- сумму положительных чисел из данного набора.

С>Ввод: stdin
С>Вывод: stdout
С>


С>При подсчете размера исходника не учитываются символы с кодом <= 32.


С>Это задача с нашего университетского соревнования. Пока (и довольно давно) там побеждают дельфисты — 76 байт. Мне удалось написать решение для BCC 5.5 размером 76 байт, но оно не компилируется на предлагаемх VC7.1, GCC3.

#include <fstream>
int n, s, p;
main ()
{
 for (cin>>n;n--;) cin>>p, s+=p>0?p:0;
 cout<<s;
}

Но это компилируется BCC5.5 VC7 и GCC3 не берут.
Re[2]: Size-contest
От: _DAle_ Беларусь  
Дата: 23.06.05 22:26
Оценка:
Здравствуйте, Сергей, Вы писали:

С>Здравствуйте, Сергей, Вы писали:


С>>Здравствуйте.

С>>Осмелюсь предложить такую задачу:

С>>
С>>Вам дан набор чисел, найдите сумму всех положительных чисел в нем. 

С>>Входные данные
С>>В первой строке записано количество чисел N (0 <= N <= 1000). 
С>>Затем следует N целых чисел, по модулю не превосходящих 1000. 

С>>Выходные данные
С>>Выведите единственное целое число -- сумму положительных чисел из данного набора.

С>>Ввод: stdin
С>>Вывод: stdout
С>>


С>>При подсчете размера исходника не учитываются символы с кодом <= 32.


С>>Это задача с нашего университетского соревнования. Пока (и довольно давно) там побеждают дельфисты — 76 байт. Мне удалось написать решение для BCC 5.5 размером 76 байт, но оно не компилируется на предлагаемх VC7.1, GCC3.

С>
С>#include <fstream>
С>int n, s, p;
С>main ()
С>{
С> for (cin>>n;n--;) cin>>p, s+=p>0?p:0;
С> cout<<s;
С>}
С>

С>Но это компилируется BCC5.5 VC7 и GCC3 не берут.

Один в один практически

#include<iomanip.h> 
int n,j,s;
main()
{
    cin >> n; 
    while(n--)
        cin >> j,
        s += j *= j>0;    
    cout << s;
}


Замена while на for и внесение ввода в n в for сэкономит еще один байт Но все равно получится только 77.
Re: Size-contest
От: vic82  
Дата: 24.06.05 07:41
Оценка: +1
77 символов.



#define Q ("%d",

n,x,s;

main()
{
    for (scanf Q &n); n--; s+=x*(x>0)) scanf Q &x);
    printf Q s);
}
Re[2]: Size-contest
От: Сергей  
Дата: 24.06.05 08:26
Оценка:
Здравствуйте, vic82, Вы писали:

V>77 символов.



V>

V>#define Q ("%d",

V>n,x,s;

V>main()
V>{
V>    for (scanf Q &n); n--; s+=x*(x>0)) scanf Q &x);
V>    printf Q s);
V>}

V>


76:

#define Q ("%d",
n,x,s;
main()
{
 for(scanf Q &n);n--;s+=x*=x>0)scanf Q &x);
 printf Q s);
}
Re[2]: Size-contest
От: Трурль  
Дата: 24.06.05 09:19
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Добавил все возможные языки — можно тестить. =)

whitespace забыли
Re[4]: Size-contest
От: Трурль  
Дата: 24.06.05 09:24
Оценка:
Здравствуйте, Socrat, Вы писали:

S>Используем опции командной строки


Дык, эта. В командной строке можно и define сделать
Re[5]: Size-contest
От: Сергей  
Дата: 24.06.05 09:46
Оценка:
Здравствуйте, Трурль, Вы писали:

Т>Здравствуйте, Socrat, Вы писали:


S>>Используем опции командной строки


Т>Дык, эта. В командной строке можно и define сделать


Так обычно на серверах, где проги проверяют, эти опции указать нельзя.
Re[3]: Size-contest
От: Нэчер  
Дата: 24.06.05 11:34
Оценка:
Здравствуйте, Сергей, Вы писали:

С>Здравствуйте, vic82, Вы писали:


V>>77 символов.



V>>

V>>#define Q ("%d",

V>>n,x,s;

V>>main()
V>>{
V>>    for (scanf Q &n); n--; s+=x*(x>0)) scanf Q &x);
V>>    printf Q s);
V>>}

V>>


С>76:


С>
С>#define Q ("%d",
С>n,x,s;
С>main()
С>{
С> for(scanf Q &n);n--;s+=x*=x>0)scanf Q &x);
С> printf Q s);
С>}
С>



74 байта.
НО
Все числа должны задаваться одной строкой, через пробел:

5 1 2 3 -4 5
Результат:
11

n,s,k;main(){for(;scanf("%d%c",&n,&k),s+=n*=n>0,k&32;s--);printf("%d",s);}
Re[2]: Size-contest_74
От: Нэчер  
Дата: 24.06.05 12:10
Оценка:
Здравствуйте, Нэчер, Вы писали:

Н>Здравствуйте, Сергей, Вы писали:


С>>Здравствуйте.

С>>Осмелюсь предложить такую задачу:

С>>
С>>Вам дан набор чисел, найдите сумму всех положительных чисел в нем. 

С>>Входные данные
С>>В первой строке записано количество чисел N (0 <= N <= 1000). 
С>>Затем следует N целых чисел, по модулю не превосходящих 1000. 

С>>Выходные данные
С>>Выведите единственное целое число -- сумму положительных чисел из данного набора.

С>>Ввод: stdin
С>>Вывод: stdout
С>>


С>>При подсчете размера исходника не учитываются символы с кодом <= 32.


С>>Это задача с нашего университетского соревнования. Пока (и довольно давно) там побеждают дельфисты — 76 байт. Мне удалось написать решение для BCC 5.5 размером 76 байт, но оно не компилируется на предлагаемх VC7.1, GCC3.


Н>Получилось только 80 (если убрать пробел после int):


Н>
Н>main(){for(int s=0,n=0,i,*k=&i;scanf("%d",k),s+=n*=n>0,i--;k=&n);printf("%d",s);}
Н>


Н>IMHO, для стандартного С это предел


Беру свою IMHO обратно...

Версия 74 байта!
В тесте имеет 81 байт (из за return!printf("%d",s))

n,s,i,*k=&i;main(){for(;scanf("%d",k),s+=n*=n>0,i--;k=&n);printf("%d",s);}
Re[2]: Size-contest
От: Нэчер  
Дата: 24.06.05 12:17
Оценка:
Здравствуйте, vic82, Вы писали:

V>77 символов.



V>

V>#define Q ("%d",

V>n,x,s;

V>main()
V>{
V>    for (scanf Q &n); n--; s+=x*(x>0)) scanf Q &x);
V>    printf Q s);
V>}

V>


Спасибо за идею, описания глобальных переменных. Здесь
Автор: Нэчер
Дата: 24.06.05
полноценная версия из 74 байт.
Re[3]: Size-contest_74
От: _DAle_ Беларусь  
Дата: 24.06.05 12:20
Оценка:
Здравствуйте, Нэчер, Вы писали:

Н>Версия 74 байта!

Н>В тесте имеет 81 байт (из за return!printf("%d",s))

Н>
Н>n,s,i,*k=&i;main(){for(;scanf("%d",k),s+=n*=n>0,i--;k=&n);printf("%d",s);}
Н>


Ну вот, обогнал А мои месаги не видны что ли? Я вроде еще раньше пример с глобальными переменными постил.
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.