Дан список raw_list (содержимое списка приведено в начале кода). Найдите минимальное (x_min) и максимальное (x_max) значения элементов данного списка.
Создайте новый список my_list, состоящий из элементов списка raw_list, умноженных на x_min, если элемент является чётным числом и на x_max в случае, если элемент нечётный.
Найдите максимальное значение списка my_list. Результат присвойте переменной result.
моя программа:
raw_list = [2, 8, 10, 23, 64, 49, 11, 52, 71, 14]
x_min=min(raw_list)
x_max=max(raw_list)
my_list=[]
if x_min%2==0:
for i in raw_list:
my_list.append(i*x_min)
if x_max%2!=0:
for i in raw_list:
my_list.append(i*x_min)
result=max(my_list)
И мне выдают при введении решения в поле для решений курса:
result contains wrong data
#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
struct PifaThree
{
int a;
int b;
int c;
PifaThree()
{
a = 0;
b = 0;
c = 0;
}
PifaThree(int a_, int b_, int c_) : a(a_), b(b_), c(c_)
{
}
~PifaThree() {}
void show()
{
std::cout << a << "^2 = " << b << "^2 + " << c << "^2";
}
};
int main()
{
std::vector<int> arr;
std::vector<int> sq_arr;
std::vector<PifaThree> results;
int temp = 0;
while(std::cin >> temp) //прерывается вводом не-int чего-нибудь
{
arr.push_back(temp);
}
if(arr.size() < 3)
{
std::cout << "3 or more needs";
system("pause");
return 0;
}
std::sort(arr.begin(), arr.end(), [](int a, int b){ return abs(a) > abs(b); } );
for(auto iter = arr.begin(); iter!= arr.end(); ++iter) sq_arr.push_back(*iter * *iter);
for(size_t i = 0, l = sq_arr.size() - 2; i < l; ++i)
{
size_t j = i+1;
int half = sq_arr[i] / 2;
while( j < l+1 && sq_arr[j] >= half)
{
size_t k = j+1;
int a = sq_arr[j] + sq_arr[k];
while( k < l+2 && a >= sq_arr[i] )
{
if(a == sq_arr[i])
{
results.push_back( PifaThree(arr[i], arr[j], arr[k]) );
}
++k;
a = sq_arr[j] + sq_arr[k];
}
++j;
}
}
std::cout << "\n\n";
for(auto iter = arr.begin(); iter!= arr.end(); ++iter) std::cout << " " << *iter;
/*
std::cout << "\n";
for(auto iter = sq_arr.begin(); iter!= sq_arr.end(); ++iter) std::cout << " " << *iter;
*/
std::cout << "\n\n";
for(auto iter = results.begin(); iter!= results.end(); ++iter)
{
iter->show();
std::cout << "\n";
}
system("pause");
return 0;
}