Решение задачи Домашнее задание с Acmp

Без пояснения   Просмотров: 26


Петя успевает по математике лучше всех в классе, поэтому учитель задал ему сложное домашнее задание, в котором нужно в заданном наборе целых чисел найти сумму всех положительных элементов, затем найти где в заданной последовательности находятся максимальный и минимальный элемент и вычислить произведение чисел, расположенных в этой последовательности между ними. Так же известно, что минимальный и максимальный элемент встречаются в заданном множестве чисел только один раз и не являются соседними. Поскольку задач такого рода учитель дал Пете около ста, то Петя как сильный программист смог написать программу, которая по заданному набору чисел самостоятельно находит решение. А Вам слабо?

Код

#include <bits/stdc++.h>
 
using namespace std;
 
int main()
{
    int n, bmaxim,bminim,bb, s = 0, p = 1, posmaxim, posminim;
    cin >> n;
    vector<int> a;
    for(int i = 0; i < n; ++i){
        cin >> bb;
        a.push_back(bb);
    }
    bmaxim = a[0];
    posmaxim = 0;
    bminim = a[0];
    posminim = 0;
    for(int i = 0; i < a.size(); ++i)
        if(a[i] > 0)
            s+=a[i];
    for(int i = 1; i < a.size(); ++i){
        if(bmaxim < a[i]){
            bmaxim = a[i];
            posmaxim = i;
        }
        if(bminim > a[i]){
            bminim = a[i];
            posminim = i;
        }
    }
 
    cout << s << " ";
    if(posminim > posmaxim)
        for(int i = posmaxim + 1; i < posminim; ++i)
            p*=a[i];
    if(posminim < posmaxim)
        for(int i = posminim + 1; i < posmaxim; ++i)
            p*=a[i];
    cout << p;
    return 0;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться