Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Oleg_Brovko
 Аватар для Oleg_Brovko
8 / 8 / 1
Регистрация: 07.03.2012
Сообщений: 57
#1

Задача Timus - C++

03.08.2013, 04:21. Просмотров 524. Ответов 6
Метки нет (Все метки)

Почему не проходит тест? Может кто знает?

http://acm.timus.ru/problem.aspx?space=1&num=1001


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <vector>
 
int main()
{
    std::vector<int> v;
    int n;
    while(scanf("%d", &n) != EOF)
    {
        v.push_back(n);
    }
 
    for(std::vector<int>::reverse_iterator it = v.rbegin(); it != v.rend(); it++)
    {
        printf("%f \n", sqrt((float)(*it)) );
    }
 
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Thinker
Эксперт C++
 Аватар для Thinker
4218 / 2192 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
03.08.2013, 08:48     Задача Timus #2
Цитата Сообщение от Oleg_Brovko Посмотреть сообщение
Почему не проходит тест?
потому что задания надо внимательно читать. если целое число может быть 18-значным (в 10-й системе), то этим

Цитата Сообщение от Oleg_Brovko Посмотреть сообщение
sqrt((float)(*it))
ничего не добьетесь
name?
 Аватар для name?
198 / 169 / 18
Регистрация: 01.06.2010
Сообщений: 371
Завершенные тесты: 1
03.08.2013, 14:27     Задача Timus #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
#include<math.h>
#pragma comment(linker, "/STACK:64000000")
using namespace std;
void work(){
   double k;
   if(cin>>k){
     work();
     printf("%.4lf\n",sqrt(k));
   }
}
int main()
{
   work();
   return 0;
}
Somebody
2775 / 1589 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
03.08.2013, 15:17     Задача Timus #4
#include <cstdio> и для вывода double - %f, а не %lf.

Добавлено через 17 минут
Ещё вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <cmath>
#include <algorithm>
#include <iomanip>
#include <iostream>
#include <iterator>
#include <vector>
 
using namespace std;
 
int main()
{
    cin.sync_with_stdio(false);
    cout.sync_with_stdio(false);
    cout << fixed << setprecision(4);
    vector<double> v((istream_iterator<double>(cin)), istream_iterator<double>());
    transform(v.rbegin(), v.rend(), ostream_iterator<double>(cout, "\n"),
        static_cast<double(*)(double)>(sqrt));
}
Dani
1263 / 621 / 50
Регистрация: 11.08.2011
Сообщений: 2,236
Записей в блоге: 2
Завершенные тесты: 1
03.08.2013, 21:35     Задача Timus #5
Somebody, а разве sync_with_stdio хорошо спасает от TL? Я как-то пробовал это заюзать в коде, но это совсем не помогло: с использованием просто cin было 0.85 сек, с использованием cin и sync_with_stdio было 0.84 сек, а с использованием scanf/printf было 0.2 сек.
Somebody
2775 / 1589 / 142
Регистрация: 03.12.2007
Сообщений: 4,162
Завершенные тесты: 1
03.08.2013, 22:18     Задача Timus #6
Цитата Сообщение от Dani Посмотреть сообщение
Somebody, а разве sync_with_stdio хорошо спасает от TL?
Не знаю, это на всякий случай...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2013, 01:32     Задача Timus
Еще ссылки по теме:

C++ Acm.timus Runtime error (access violation)

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Oleg_Brovko
 Аватар для Oleg_Brovko
8 / 8 / 1
Регистрация: 07.03.2012
Сообщений: 57
04.08.2013, 01:32  [ТС]     Задача Timus #7
Всем спасибо.
Yandex
Объявления
04.08.2013, 01:32     Задача Timus
Ответ Создать тему
Опции темы

Текущее время: 20:00. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru