|
Олимпиада программистов, Чистый С |
|
|
|
Feb 25 2013, 09:05
|
Местный
  
Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753

|
Не знаю, разрешено ли здесь такие сообщения давать. Но надеюсь, что модератор не обидится. Знакомая компания проводит олимпиаду по программированию. Решили поискать программистов в русскоговорящем мире. Меня попросили рассказать, где могу. А я только на этом форуме и бываю. Причем только в разделе для начинающих. http://hola.org/challenge_ru.htmlНадо написать две простые функции на чистом С.
|
|
|
|
|
 |
Ответов
|
Mar 27 2013, 20:33
|

Профессионал
    
Группа: Свой
Сообщений: 1 433
Регистрация: 27-10-08
Из: Украина, Киев
Пользователь №: 41 215

|
Жаль что больше нет времени. 28го все закончится( Вот моя последняя реализация. Прокачал защиту от NULL, оптимизировал некоторые участки и обдумал траблу с перекрытием данных в строках. Код #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdarg.h>
void str_cpy ( char **a, const char * b ) {
int size_src; char overlap; if ( b ) size_src = strlen( b ) + 1; else return; overlap = (*a <= b && *a + size_src >= b) || (b <= *a && b + size_src >= *a); *a = realloc( *a, size_src ); if ( overlap ) for (*a += size_src, b += size_src; size_src--; *--*a = *--b); else memcpy( *a, b, size_src ); }
void str_cat ( char **a, const char *b ){ int size_src, size_des; if ( *a ) size_des = strlen( *a ); else size_des = 0; if ( b ) size_src = strlen( b ); else return; *a = realloc( *a, size_src + size_des + 1 ); memmove ( *a + size_des, b, size_src + 1 ); }
int main() { char *s = NULL; str_cpy( &s, "Hola Mola" ); str_cpy( &s, s+5 ); str_cat( &s," World" ); return 0; } Очень интересно как правильно, ждем ответ ответ на этот вопрос от организаторов!  (EDIT: Утром немного допилил и исправил ошибки)
--------------------
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.
|
|
|
|
|
Mar 28 2013, 05:19
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(Буратино @ Mar 28 2013, 00:33)  обдумал траблу с перекрытием данных в строках. А чего её обдумывать? Посмотрите реализацию memmove. В ней всё уже обдумано: если нет перекрытия то вызывается memcpy. Оптимальнее вряд ли напишете. Я тоже отправил свой вариант в день размещения этой темы, но никакого ответа пока так и не получил. Завтра могу показать.
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Mar 28 2013, 06:01
|
Местный
  
Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753

|
Цитата(demiurg_spb @ Mar 28 2013, 09:19)  Я тоже отправил свой вариант в день размещения этой темы, но никакого ответа пока так и не получил. Это странно. Они всегда отвечают если не в тот же день, то на следующий. Скажите, пожалуйста, свой емэйл. Можно частично. Я им прямо сейчас позвоню и спрошу как так получилось, что не ответили.
|
|
|
|
|
Mar 28 2013, 06:05
|

неотягощённый злом
     
Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643

|
Цитата(igorle @ Mar 28 2013, 10:01)  Это странно. Они всегда отвечают если не в тот же день, то на следующий. Скажите, пожалуйста, свой емэйл. Можно частично. Я им прямо сейчас позвоню и спрошу как так получилось, что не ответили. Отправлял и с demiurg_spb @ _ _ _.ru и с ___ @ kipspb.ru
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Apr 2 2013, 16:08
|
Местный
  
Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753

|
Цитата(demiurg_spb @ Mar 28 2013, 09:05)  Отправлял и с demiurg_spb @ _ _ _.ru и с ___ @ kipspb.ru Посмотрели. Говорят, что с @kipspb.ru был один участник. Давно. Ответили ему в тот же день. От demiurg_spb получили письмо только 28 марта. Были праздники, но скоро ответят (может быть уже ответили) Очень удивлялись, что люди обсуждают на форуме и выкладывают решения конкурсных задач. Считают что это нелогичным. тем более, что конкурс продолжается.
|
|
|
|
|
Apr 2 2013, 19:33
|
Местный
  
Группа: Свой
Сообщений: 338
Регистрация: 14-07-12
Пользователь №: 72 753

|
Цитата(Буратино @ Apr 2 2013, 20:55)  Как так продолжается? А когда заканчивается? Они этот процесс уже год как ведут. Можете посмотреть список "победителей". Там есть даты. Я не знаю, зачем он конечную дату публикуют, а потом корректируют. Хозяин - барин. Ну и, как помните, конкурс индивидуальный, а не коллективный. Так что лучше свои решения не публиковать.
Сообщение отредактировал igorle - Apr 2 2013, 19:35
|
|
|
|
Сообщений в этой теме
igorle Олимпиада программистов Feb 25 2013, 09:05 SyncLair Уж простите но как то лохотроном попахивает ) Feb 25 2013, 15:10 igorle Цитата(SyncLair @ Feb 25 2013, 19:10) Уж ... Feb 25 2013, 15:49 SyncLair Да я не про вашу репутацию. Я про фирму. Ей наверн... Feb 25 2013, 16:01 igorle Цитата(SyncLair @ Feb 25 2013, 20:01) Да ... Feb 25 2013, 16:18  Слесарь Цитата(igorle @ Feb 25 2013, 19:18) - ест... Feb 26 2013, 16:54   igorle Цитата(Слесарь @ Feb 26 2013, 19:54) ... ... Feb 26 2013, 17:06    _Pasha Цитата(igorle @ Feb 26 2013, 20:06) А воо... Feb 26 2013, 17:12    Слесарь Цитата(igorle @ Feb 26 2013, 20:06) На ин... Feb 26 2013, 17:27     _Pasha Цитата(Слесарь @ Feb 26 2013, 20:27) Наве... Feb 26 2013, 17:34 _Pasha Цитата(SyncLair @ Feb 25 2013, 19:01) Чес... Feb 25 2013, 16:22 gerber Цитата(SyncLair @ Feb 25 2013, 19:01) Чес... Feb 26 2013, 12:10 ReAl Причём совершенно непонятно, круче будет тот вариа... Feb 25 2013, 19:21 _Pasha Цитата(ReAl @ Feb 25 2013, 22:21) Причём ... Feb 26 2013, 09:48 demiurg_spb Цитата(ReAl @ Feb 25 2013, 23:21) Ну а st... Feb 26 2013, 13:48  ReAl Цитата(demiurg_spb @ Feb 26 2013, 15:48) ... Feb 26 2013, 13:56   demiurg_spb Цитата(ReAl @ Feb 26 2013, 17:56) А чо... Feb 26 2013, 14:00    ReAl Цитата(demiurg_spb @ Feb 26 2013, 16:00) ... Feb 26 2013, 14:47  igorle про str_printf:
Цитата(demiurg_spb @ Feb 26 2... Feb 26 2013, 15:41 Iptash В функции str_cat перед конкатенации нужно Mundo е... Feb 25 2013, 19:24 igorle Цитата(Iptash @ Feb 25 2013, 22:24) В фун... Feb 25 2013, 20:00  ReAl Цитата(igorle @ Feb 25 2013, 22:00) В исх... Feb 26 2013, 07:40  ViKo Цитата(igorle @ Feb 25 2013, 23:00) Откро... Feb 26 2013, 09:37   Lotor Цитата(ViKo @ Feb 26 2013, 13:37) Ваши др... Feb 26 2013, 11:43 Сергей Борщ Мда... Олимпиада - высшее спортивное состязание. Т... Feb 26 2013, 12:04 igorle Цитата(Сергей Борщ @ Feb 26 2013, 16:04) ... Feb 26 2013, 12:51  Сергей Борщ QUOTE (igorle @ Feb 26 2013, 14:51) Если ... Feb 26 2013, 13:46 _Pasha Надо создать поток с переопределенной ф-цией putc(... Feb 26 2013, 15:37 SSerge А потом этих гениев примут в штат и посадят очедну... Feb 26 2013, 15:55 _Pasha Цитата(SSerge @ Feb 26 2013, 18:55) Вот с... Feb 26 2013, 16:01 Слесарь Незнаю как и кто, но я ощущаю счастье в том, что п... Feb 26 2013, 17:39 ViKo Воры в законе? Feb 26 2013, 17:51 _Pasha Цитата(ViKo @ Feb 26 2013, 20:51) Воры в ... Feb 26 2013, 17:58 Буратино Может вот так попробовать:
Код#include <stdio... Mar 18 2013, 10:08 igorle Цитата(Буратино @ Mar 18 2013, 14:08) Мож... Mar 19 2013, 14:39  Буратино Цитата(igorle @ Mar 19 2013, 18:39) Я обе... Mar 19 2013, 17:27  demiurg_spb Цитата(igorle @ Mar 19 2013, 18:39) Пока ... Mar 20 2013, 05:17   igorle Цитата(demiurg_spb @ Mar 20 2013, 08:17) ... Mar 20 2013, 07:09 skripach ЦитатаНезнаю как и кто, но я ощущаю счастье в том,... Mar 19 2013, 14:52 federal На олимпиадное тут не тянет, даже далеко не тянет.... Mar 20 2013, 07:40 am1808 отправил ради интереса
Кодvoid str_cpy( char*... Mar 20 2013, 10:08 Буратино Да, мне кое какие моменты нужно исправить..
Скажи... Mar 20 2013, 10:09 gerber Цитата(Буратино @ Mar 20 2013, 13:09) Ска... Mar 20 2013, 10:28  msalov Цитата(gerber @ Mar 20 2013, 13:28) Кодst... Mar 22 2013, 06:10 am1808 размер типа правильно определять в runtime Mar 20 2013, 10:13 demiurg_spb Цитата(am1808 @ Mar 20 2013, 14:13) разме... Mar 20 2013, 10:17  am1808 Цитата(demiurg_spb @ Mar 20 2013, 14:17) ... Mar 20 2013, 10:25 Буратино Цитата(am1808 @ Mar 20 2013, 14:13) разме... Mar 20 2013, 10:23  aaarrr Цитата(Буратино @ Mar 20 2013, 14:23) Но ... Mar 20 2013, 10:27   demiurg_spb Цитата(aaarrr @ Mar 20 2013, 14:27) Далек... Mar 20 2013, 10:39    Огурцов Цитата(demiurg_spb @ Mar 20 2013, 11:39) ... Mar 21 2013, 11:58     demiurg_spb Цитата(Огурцов @ Mar 21 2013, 15:58) А у ... Mar 21 2013, 12:20      Буратино Цитата(demiurg_spb @ Mar 21 2013, 16:20) ... Mar 21 2013, 14:37       igorle Цитата(Буратино @ Mar 21 2013, 17:37) ... Mar 21 2013, 14:44        Буратино Цитата(igorle @ Mar 21 2013, 17:44) Пробл... Mar 21 2013, 15:10         igorle Цитата(Буратино @ Mar 21 2013, 18:10) А к... Mar 21 2013, 15:52  am1808 Цитата(Буратино @ Mar 20 2013, 14:23) Вид... Mar 20 2013, 10:31 Буратино am1808, если открыть реализацию realloc, то там по... Mar 20 2013, 11:06 Буратино Вот так еще можжно:
Код#include <stdio.h>
... Mar 21 2013, 11:54 am1808 нее, не прокатит, множитель в виде sizeof(char) ли... Mar 22 2013, 07:18 Буратино igorle, замечания обдумываю, но вот например не яс... Mar 22 2013, 07:30 igorle Цитата(Буратино @ Mar 22 2013, 11:30) ...... Mar 22 2013, 07:52 Буратино Если бы я мог как-то обезапасить строку от изменен... Mar 22 2013, 11:28 federal Буратино, какой же ты деревянный все таки Mar 22 2013, 12:29 Буратино Цитата(federal @ Mar 22 2013, 15:29) Бура... Mar 22 2013, 13:08 Буратино igorle, Вы наверное хотели написать
Код'... Mar 25 2013, 11:29 igorle Я Вас теряю.
Вы пишите
Цитатане ясно почему ... Mar 25 2013, 14:18 Буратино Сори, но я имел в виду именно '\0', ... Mar 25 2013, 16:41 ARV Цитата(Буратино @ Mar 25 2013, 20:41) Кое... Mar 25 2013, 18:15 igorle Цитата(Буратино @ Mar 25 2013, 19:41) Сор... Mar 26 2013, 07:22 ar__systems отправил им решение, посмотрим что ответят. Сделал... Mar 27 2013, 15:12    igorle Цитата(demiurg_spb @ Mar 28 2013, 10:05) ... Mar 28 2013, 06:16     demiurg_spb Цитата(igorle @ Mar 28 2013, 10:16) Сопро... Mar 28 2013, 06:23      igorle Цитата(demiurg_spb @ Mar 28 2013, 09:23) ... Mar 28 2013, 06:53        igorle Цитата(demiurg_spb @ Apr 5 2013, 08:20) П... Apr 5 2013, 08:13     demiurg_spb Цитата(igorle @ Apr 2 2013, 20:08) Посмот... Apr 3 2013, 05:16 Буратино Скажите, а как можно переписать покрасивше вот это... Mar 28 2013, 06:40 demiurg_spb Кодchar* p;
size_t n = (p)? strlen(p... Mar 28 2013, 06:40  Буратино Цитата(demiurg_spb @ Mar 28 2013, 09:40) ... Mar 28 2013, 06:45   demiurg_spb Цитата(Буратино @ Mar 28 2013, 10:45) А м... Mar 28 2013, 06:48   demiurg_spb Цитата(Буратино @ Mar 28 2013, 10:45) А з... Mar 28 2013, 07:00 ar__systems Цитата(Буратино @ Mar 28 2013, 01:40) Ска... Mar 28 2013, 12:54 Буратино Да, нужно почитать что-то на эту тему. Спс. Mar 28 2013, 07:11 Буратино Так чем дело кончилось? Какое правильное решение? May 17 2013, 10:41 ARV Цитата(Буратино @ May 17 2013, 14:41) Так... May 18 2013, 18:17 igorle Цитата(Буратино @ May 17 2013, 13:41) Так... May 19 2013, 20:02 Буратино Для меня важно понять: правильное решение лежит ис... May 20 2013, 12:01 igorle Цитата(Буратино @ May 20 2013, 15:01) Для... May 20 2013, 17:07  Idle Цитата(igorle @ May 20 2013, 21:07) 119 п... May 20 2013, 18:54
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|