В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
Lerysik00
Lerysik00
07.04.2021 19:24 •  Информатика

Программа на паскаль Формат входных данных:
В единственной строке записано число N(1<=N<=10^9).

Формат выходных данных:
Выведите через пробел два натуральных числа, произведение которых даёт N. Гарантируется, что такие числа существуют.

Примеры

Вход / Выход

971715247 / 12437 7831

Показать ответ
Ответ:
tema3331
tema3331
28.03.2020 23:33

#include <iostream>

#include <vector>

using namespace std;

int pos_sum(vector<int> &v){

   int res = 0;

   for(auto &i : v)

       res += i * (i > 0);

   return res;

}

int min_max_mult(vector<int> &v){

   int res = 1;

   pair<int,int> mn,mx;

   mn = {v[0],0};

   mx = mn;

   for(int i = 1; i < v.size(); i++){

       if(v[i] > mx.first){

           mx.first = v[i];

           mx.second = i;

       }

       if(v[i] < mn.first){

           mn.first = v[i];

           mn.second = i;

       }

   }

   int st = min(mn.second, mx.second), fn = max(mn.second,mx.second);

   for(int i = st + 1; i < fn; i++)

       res *= v[i];

   return res;

}

int main(){

   int n;

   cin >> n;

   vector<int> a(n);

   for(auto &i : a) cin >> i;

   cout << pos_sum(a) << " " << min_max_mult(a);

}

0,0(0 оценок)
Ответ:
влад2299
влад2299
28.03.2020 23:33

#include <iostream>

#include <vector>

using namespace std;

int main()

{

   int s = 0, l = 1, n;

   cin >> n;

   vector <int> v(n);

   for (int i = 0; i < n; ++i)

   {

       cin >> v[i];

       if (v[i] > 0)

       {

           s += v[i];

       }

   }

   int imn = 0, imx = 0;

   for (int i = 0; i < n; ++i)

   {

       if (v[i] < v[imn])

       {

           imn = i;

       }

       if (v[i] > v[imx])

       {

           imx = i;

       }

   }

   if (imn > imx)

       {

           swap (v[imn], v[imx]);

       }

   for (int i = imn; i < imx; i++)

   {

       if (v[i] > 0)

       {

           l *= v[i];

       }

   }

   cout << s << " " << l;

   return 0;

}

Объяснение:

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота