#include <iostream>
#include <vector>
using namespace std;
int main()
{
int n;
cin >> n;
vector <int> v(n);
for(int i = 0; i < n; i++) {
cin >> v[i];
}
int a, b, c, d; //1, 2 макс.; 1, 2 мин.
a = c = v[0];
b = d = v[1];
if(a > b) swap(a, b);
if(c > d) swap(c, d);
for(int i = 2; i < n; i++) {
if(v[i] > a) {
if(a > b) b = a;
a = v[i];
} else if(v[i] > b) {
b = v[i];
}
if(v[i] < c) {
d = c;
c = v[i];
} else if(v[i] < d) {
d = v[i];
}
}
if(a > b) swap(a, b);
if(c > d) swap(c, d);
if(a * b > c * d) cout << a << " " << b;
else cout << c << " " << d;
}
Объяснение:
Как то так
Элементы списка могут вводиться по одному в строке, в этом случае строку можно считать функцией input(). После этого можно использовать метод строки split, возвращающий список строк, разрезав исходную строку на части по пробелам. Пример:
A = input().split()
Если при запуске этой программы ввести строку 1 2 3, то список A будет равен ['1', '2', '3']. Обратите внимание, что список будет состоять из строк, а не из чисел. Если хочется получить список именно из чисел, то можно затем элементы списка по одному преобразовать в числа:
for i in range(len(A)):
A[i] = int(A[i])
Используя функции языка map и list то же самое можно сделать в одну строку:
A = list(map(int, input().split()))
Объяснений, как работает этот код, пока не будет. Если нужно считать список действительных чисел, то нужно заменить тип int на тип float.
У метода split есть необязательный параметр, который определяет, какая строка будет использоваться в качестве разделителя между элементами списка. Например, метод split('.') вернет список, полученный разрезанием исходной строки по символам '.'.
Используя “обратные” методы можно вывести список при однострочной команды. Для этого используется метод строки join. У этого метода один параметр: список строк. В результате получается строка, полученная соединением элементов списка (которые переданы в качестве параметра) в одну строку, при этом между элементами списка вставляется разделитель, равный той строке, к которой применяется метод. Например программа
A = ['red', 'green', 'blue']
print(' '.join(A))
print(''.join(A))
print('***'.join(A))
выведет строки 'red green blue', redgreenblue и red***green***blue.
Если же список состоит из чисел, то придется использовать еще и функцию map. То есть вывести элементы списка чисел, разделяя их пробелами, можно так:
print(' '.join(map(str, A)))
Объяснение:
⚡
Поделитесь своими знаниями, ответьте на вопрос:
Решить эту по программировании , с++ в театре работает n актеров. известно, что среди них a высоких, b голубоглазых и с блондинов. для главной роли в новом спектакле режиссеру требуется только один высокий голубоглазый блондин. чтобы спланировать свое время для беседы с каждым таким артистом из труппы театра, режиссеру необходимо узнать, какое максимальное или какое минимальное количество артистов из работающих в театре подходит для этой роли. требуется написать программу, которая по заданным числам n, a, b и с определяет минимальное или максимальное количество актеров, с которыми режиссер должен переговорить. входные данные первая строка содержит одно число, которое задает, минимальное или максимальное количество актеров необходимо найти в данном тесте. это число может принимать следующие значения: 1, если в данном теcте требуется определить минимальное количество актеров; 2, если в данном тесте требуется определить максимальное количество актеров. вторая строка содержит четыре целых числа: n, a, b, с (1 ≤ n ≤ 10000, 0 ≤ a, b, c ≤ n выходные данные вывести одно число - минимальное или максимальное (в зависимости от входных данных) количество актеров, которые могут претендовать на главную роль в новом спектакле. пояснения к примерам в первом примере, поскольку высоких актеров всего трое, то на главную роль не может подойти больше трех человек. во втором примере все актеры – блондины и все, кроме одного – голубоглазые. тогда среди трех высоких актеров найдутся хотя бы два голубоглазых (и, естественно, они будут блондинами). следовательно, минимум два актера точно подойдут на главную роль в новом спектакле. входные данные #1 2 5 3 4 5 выходные данные #1 3 входные данные #2 1 5 3 4 5 выходные данные #2 2 как найти максимальное знаю, как найти минимальное количество. заранее !