Информационный поток - процесс передачи информации от одного объекта другому.При этом информация может видоизменяться, кодироваться, преобразововаться из одного вида сигналов в другие.Основные устройства компьютера - клавиатура, мышь, монитор, видео плата, процессор, ОЗУ, контроллеры, запоминающие устройства(накопители).Процессор это сердце компьютера, главный наблюдатель в процессе информационных потоков компьютера.При включении процессор инициирует процесс загрузки программ из накопителей в озу, он просит котроллеры чтобы поток данных загружался напрямую, по возможности, из накопителей в ОЗУ, минуя внутреннюю память процессора.Время от времени он опрашивает устройства ввода, мышь клавиатуру, на предмет сигналов, в которых закодированны нажатые кнопки, позиции курсора, итд... Если процессор зависнет, зациклится, то нажатия на кнопки не приведут ни к чему,т.к эти устройства никто не опрашивает.Программы, выполняющиеся на процессоре, могут "попросить" процессор выводить информацию на монитор, подавая комманды.Обрабатывая эти комманды процессор, отправляет данные в видео плату, или в котроллер видеоплаты.Видеоплата, получая данные из процессора в свой видео буфер, преобразует их в аналого-цифровой формат для подачи уже в монитор через кабель.
#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);
}