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

Обсуждение задачи 1854. Переговоры с Парфией

I have WA 36
Послано arrammis 22 янв 2015 17:53
My solution pass's all tests presented here in the forum.
But i get WA at 36 test, authors please help what's there????

<code>
#include <iostream>
using namespace std;

int main()
{
    __int64 n, i, a, b, c, maxC1 = 1, maxC2 = 1, maxC = 1;
    cin >> n;
    for (i = 1; i*i < 1000000; i += 2)
    {
        if (n % i == 0)
        {
            a = n/i;
            b = sqrtl((long double)a);
            c = sqrtl((long double)i);

            if (b*b == a && a > maxC1) {
                maxC1 = a;
            }

            if (c*c == i && i > maxC2) {
                maxC2 = i;
            }

            maxC = max(maxC1, maxC2);
        }
    }

    cout << maxC;
    return 0;
}
</code>
Do I need to write own sqrt ? What the problem is ?



Edited by author 22.01.2015 17:54
Re: I have WA 36
Послано Kyle 30 янв 2018 05:02
For test 36, make sure to use unsigned long longs to prevent overflow:
999999998000000001
999999998000000001