Якось так в мене вийшло. Думаю може бути таке, що не весь код буде правильним, але я написав так, як зрозумів умову. Я так зрозумів, що тип векторів a і b буде float і вони заповнюються вручну з клавіатури. І ще результатів я не виводив, якщо треба буде, то думаю сама зрозумієш, як їх вивести. В 2 завданні, я так зрозумів, треба окремо помножити елементи векторів а і b, які знаходяться від першого елементу зі значенням 0 до другого з 0. Змінні doba і dobb містять результат множення. У випадку, якщо найдено тільки один нульовий елемент, то множиться від нього до кінця вектора; а якщо не найдено, то буде 0. А в 3 завданні я просто використав алгоритм сортування, який сортує значення векторів в порядку зростання. І вийде, що елементи з 0 будуть найперші.
P.S. Якщо щось не так, як треба, то або сама поправиш, або я поможу.
dsxakep
Це добутки, я так зрозумів. Ну, в умові там було порахувати добуток від першого елементу, який дорівнює 0 до другого такого. Якщо один нуль тільки, то від наступного елемента до кінця. А якщо ні одного з них немає, то я написав, щоб добуток був рівним нулю. Я так зрозумів цю умову і так зробив
Answers & Comments
Якось так в мене вийшло. Думаю може бути таке, що не весь код буде правильним, але я написав так, як зрозумів умову. Я так зрозумів, що тип векторів a і b буде float і вони заповнюються вручну з клавіатури. І ще результатів я не виводив, якщо треба буде, то думаю сама зрозумієш, як їх вивести. В 2 завданні, я так зрозумів, треба окремо помножити елементи векторів а і b, які знаходяться від першого елементу зі значенням 0 до другого з 0. Змінні doba і dobb містять результат множення. У випадку, якщо найдено тільки один нульовий елемент, то множиться від нього до кінця вектора; а якщо не найдено, то буде 0. А в 3 завданні я просто використав алгоритм сортування, який сортує значення векторів в порядку зростання. І вийде, що елементи з 0 будуть найперші.
P.S. Якщо щось не так, як треба, то або сама поправиш, або я поможу.
#include <iostream>
#include <vector>
#include <algorithm>
#include <math.h>
using namespace std;
int main(){
int n, m;
cin >> n >> m;
vector<float> a(n), b(m), c, d;
for(float& i: a)
cin >> i;
for(float& i: b)
cin >> i;
//1
float maxv = max(*max_element(a.begin(), a.end()), *max_element(b.begin(), b.end()));
bool isBgr = false;
for (int i(1); i < n - 1; i++) {
if(a[i - 1] - a[i] > maxv || a[i] - a[i - 1] > maxv){
isBgr = true;
break;
}
}
if(isBgr)
d.resize(abs(floor(maxv)), 0);
else{
c.resize(max(n, m));
for (int i = 0; i < c.size(); i++) {
if(i > n)
c[i] = b[i];
else if(i > m)
c[i] = a[i];
else c[i] = a[i] + b[i];
}
}
//2a
int i01(0), i02(0), doba(1), dobb(1);
bool is02 = false;
for (int i = 0; i < n; i++) {
if(a[i] == 0 && !is02){
i01 = i;
is02 = true;
}
else if(a[i] == 0 && is02)
i02 = i;
}
if(i01 != 0){
if(i02 == 0)
i02 = n;
for (int i(i01 + 1); i < i02; i++)
doba*=a[i];
}else doba = 0;
//2b
is02 = false;
i01 = 0;
i02 = 0;
for (int i = 0; i < m; i++) {
if(b[i] == 0 && !is02){
i01 = i;
is02 = true;
}
else if(b[i] == 0 && is02)
i02 = i;
}
if(i01 != 0){
if(i02 == 0)
i02 = m;
for (int i(i01 + 1); i < i02; i++)
dobb*=b[i];
}else dobb = 0;
cout << doba << ' ' << dobb;
//3
sort(a.begin(), a.end());
sort(b.begin(), b.end());
return 0;
}