Новые сообщения Участники Правила Поиск

Страница 1 из 11
Модератор форума: thecre 
Форум » Общие » Hard&Soft » Си - задача.
Си - задача.
shadow_tin Среда, 30.01.2013, 20:25 | Сообщение # 1


Сообщений: 151
Награды: 4
Замечания: 0%
 
Участвую в "конкурсе". Там попалась вот такая задачка:

Есть аналогичная: вместо чёрного столбца - черная строка.
Я написал 25 сантиметров кода:
Прямая ссылка к коду

Для проверки программа отправляется на сервер, сервер подставляет свой input.txt.
Про мой код сервер отзывается негативно. Я считаю, что не учитываю какую-то крайнюю точку, подкладываемую сервером, но уже который час не могу её найти. Помогите пожалуйста.
Сообщение отредактировал shadow_tin - Среда, 30.01.2013, 20:31



"Просто у него окрепшая физика, а ты ещё не дорос..."
SLAwww Среда, 30.01.2013, 22:55 | Сообщение # 2


Рряа? ^..^
Сообщений: 2365
Награды: 28
Замечания: 0%
 
Жуть. Не могу смотреть на такие названия переменных. Попробуй вот это, я не проверял, но должно работать для "чёрного" столбца. Для "чёрной" строки, если очень нужно, сам переделаешь.
Код
#include <stdio.h>
#include <ctype.h>

int main(int argc, char* argv[])
{
   FILE *fiInput  = fopen("input.txt","r");   
   FILE *fiOutput = fopen("output.txt","w");

   if ( (NULL == fiInput) || (NULL == fiOutput)) return 0;

   int iResolution = 0;
   if (0 == feof(fiInput)) fscanf(fiInput, "%d", &iResolution);

   if (0 < iResolution)
   {
    char chrCurrent;
    int iStage = 0;
    int iWidth = 0;
    int iSinceLastOne = 0;
    char chrRead[2];
    while (0 == feof(fiInput))
    {
     fscanf(fiInput, "%c", chrRead);
     if (isdigit(*chrRead))
     {
      chrCurrent = *chrRead;
     }
     else
     {
      continue;
     }

     switch(iStage) {
      case 1:
       {
        iWidth++;
        if ('0' != chrCurrent) iStage++;
        continue;
       }
      case 2:
       {
        if (('0' == chrCurrent && iWidth != iSinceLastOne) || ('1' == chrCurrent && iWidth == iSinceLastOne + 1))
        {
         iSinceLastOne++;
         iSinceLastOne %= iWidth;
         continue;
        }
        else
        {
         iWidth = 0;
         break;
        }
       }
      default:
       {
        if ('0' != chrCurrent) iStage++;
        continue;
       }
     }
     break;
    }

    if(0 != iWidth && 0 == iResolution % iWidth)
    {
     int iHeight = iResolution / iWidth;
     fprintf(fiOutput, "%d %d", iHeight, iWidth);
    }
    else
    {
     fprintf(fiOutput,"Impossible!");
    }

    fclose(fiInput);
    fclose(fiOutput);
   }

   return 0;
}
Сообщение отредактировал SLAwww - Четверг, 31.01.2013, 00:00


Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
-JD- Среда, 30.01.2013, 23:35 | Сообщение # 3


Сообщений: 301
Награды: 15
Замечания: 0%
 
Что это за участие в конкурсе, если ты идешь на форум и просишь за тебя решить задачу??? =\


http://sam4ever.do.am
shadow_tin Четверг, 31.01.2013, 00:31 | Сообщение # 4


Сообщений: 151
Награды: 4
Замечания: 0%
 
Slawww, спасибо!
Цитата (SLAwww)
Жуть. Не могу смотреть на такие названия переменных.

Извини, я пишу на си не так давно, и меня этому никто не учил.
Глупый вопрос, а объявления переменных ведь нужно дописать? Или это какой-то другой, магический си) Вот я запускаю твой код в Dev-c++ и все вроде ок, а отправляю на сервер - ругается на необъявленные переменные.
--
Хм, выбрал компилятор на сервере, GNU C 4.5.0 (MinGW), пишет - неправильный ответ. Но всё равно спасибо, попробую разобраться. Чувствую, что мне далеко до твоего уровня.

-JD-, ну, конкурс уже прошел, и я уже из практического интереса написал сей опус. Придут результаты, узнаем стоило ли мне вообще писать.



"Просто у него окрепшая физика, а ты ещё не дорос..."
SLAwww Четверг, 31.01.2013, 00:46 | Сообщение # 5


Рряа? ^..^
Сообщений: 2365
Награды: 28
Замечания: 0%
 
Все переменные объявлены, возможно, компилятор на сервере не понимает, зачем нужны аргументы функции main.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
SeriousAlexej Четверг, 31.01.2013, 02:23 | Сообщение # 6


Serious Editor
Сообщений: 1200
Награды: 52
Замечания: 0%
 
Что-то мне тяжело понимать этот код... Но стало интересно - написал свой вариант :)


P.S.: Твой код почему-то выдает неправильный результат, если в input.txt вот это:

12
0 1 1 0 0 0 1 0 0 0 1 0

В output.txt выходит
12 1

P.P.S.: Блин, у меня тоже выдает какой-то бред, если разрешение маленькое)
Сообщение отредактировал SeriousAlexej - Четверг, 31.01.2013, 02:32



SLAwww Четверг, 31.01.2013, 03:36 | Сообщение # 7


Рряа? ^..^
Сообщений: 2365
Награды: 28
Замечания: 0%
 
Версия 1.0.1:

Насколько я понял условие, писать надо было на чистом С, без всяких там iostreamов. И я надеюсь, ты на самом деле знаешь, что такое итератор.
Сообщение отредактировал SLAwww - Четверг, 31.01.2013, 03:41


Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
TBS Четверг, 31.01.2013, 14:11 | Сообщение # 8


Брутальный Металлист
Сообщений: 934
Награды: 8
Замечания: 0%
 
Ни хрена задача! O_o



[ Мой канал на YouTube ] [ Мой профиль в Steam ]
shadow_tin Четверг, 31.01.2013, 19:45 | Сообщение # 9


Сообщений: 151
Награды: 4
Замечания: 0%
 
Я проверил
12
0 0 0 0 1 1 1 1 0 0 0 0
В 0.1 сошлось, и, прикол, сервер всё равно не засчитывает!)



"Просто у него окрепшая физика, а ты ещё не дорос..."
SLAwww Четверг, 31.01.2013, 21:38 | Сообщение # 10


Рряа? ^..^
Сообщений: 2365
Награды: 28
Замечания: 0%
 
Моя программа ищет "чёрный" столбец, а не "чёрную" строку.

Where did all the dragons go?
We searched in the hills and we searched down the canyons,
we even scanned the depths of the caves with our armour, swords and lanterns.
Oh, if only had we seen him lurch, from his glorious skull covered perch.

CRACK went his claws and SMACK swipped the tail,
a ROAR of might, one big BITE.

and so ended our search.
shadow_tin Четверг, 31.01.2013, 22:37 | Сообщение # 11


Сообщений: 151
Награды: 4
Замечания: 0%
 
Дык
12
0 0 0 0 1 1 1 1 0 0 0 0
На это выдает Импоссибл!.
Всё ок.



"Просто у него окрепшая физика, а ты ещё не дорос..."
Форум » Общие » Hard&Soft » Си - задача.
Страница 1 из 11
Поиск: