• задача на c++
    Дана последовательность целых чисел a1, a2, a3, ..., an, заканчивающаяся числом 0 (само число 0 в последовательность не входит, то есть ai≠0). Требуется вывести на экран числа этой последовательности, которые были больше среднего арифметического.
    Формат входных данных Программе дается последовательность целых чисел. Гарантируется, что объём входных данных не превышает 1 Мб. Все числа по модулю не превосходят 230.
    Формат выходных данных Требуется вывести в первой строке количество чисел больших среднего арифметического, а затем во второй строке сами эти числа через пробел.

Ответы 6

  • Вопрос только во времени. Удаление элементов, сортировка, все это лишнее время.
  • не при нынешних возможностях компьютеров, мы, друг, не в 80х годах 20го века
    • Автор:

      natalie
    • 4 года назад
    • 0
  • А как насчет оперативной памяти, если входной поток не 1Mb, а 100Mb ?
    • Автор:

      tapia
    • 4 года назад
    • 0
  • Открой и посмотри, сколько у тебя оперативы на компьютере
  • Лично у меня 512 , и мне хватает.
    • Автор:

      tyharvey
    • 4 года назад
    • 0
  • #include <bits/stdc++.h>using namespace std;int main(){    vector<int> a;    int cnt = 0;    double average = 0;    while (true)    {        int tmp;        cin >> tmp;        if (!tmp)            break;        cnt++;        a.push_back(tmp);        average += tmp;    }    average /= cnt;    int ans = 0;    vector<int> b;    for (int i = 0; i < cnt; i++)        if (a[i] > average)            ans++, b.push_back(a[i]);    cout << ans << endl;    for (int i = 0; i < b.size(); ++i)        cout << b[i] << ' ';}
    • Автор:

      smiley
    • 4 года назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years