ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1001. Обратный корень

Уже сдаюсь. Но моём компе нормально, здесь WA.
Послано Tom 3 апр 2013 03:20
Здравствуйте!
Никак не могу понять где у меня проблема. На домашнем компьютере всё нормально работает, но здесь постоянно выдаёт WA.
Спасибо




#include <stdio.h>
#include <math.h>

int main(void) {

    long num;
    long double arr[100000];
    int position = 0;
    int asnwer;

    while ( ( asnwer = scanf("%lu", &num)) != EOF ) {
        if ( asnwer == 1 ) {
            arr[position] = num;
            position++;
        }
    }

    position--;

    while (position >= 0) {
        printf("%.4f\n", sqrt( arr[position] ));
        position--;
    }

    //getchar();

    return 0;
}
Re: Уже сдаюсь. Но моём компе нормально, здесь WA.
Послано Vedernikoff 'Goryinyich' Sergey (HSE: АОП) 3 апр 2013 17:49
1. Your code is compiler-dependent: long == int on some compilers, so never use it. Use int or long long explicitly
2. Why do you think 100000 array is enough?
Re: Уже сдаюсь. Но моём компе нормально, здесь WA.
Послано Tom 3 апр 2013 22:52
Thank you for your answer.
1) Ok, i made it.
2) Actually if i try to raise after 100.000 i get "Runtime error (stack overflow)". So maybe there is some another trick i didn't get.

Best regards
Re: Уже сдаюсь. Но моём компе нормально, здесь WA.
Послано Vladimir Yakovlev (USU) 3 апр 2013 23:03
Use global array to avoid stack overflow