Условие задачи
Задан массив из $n$ целых чисел. Замените все наибольшие его элементы на наименьший, а наименьшие элементы на наибольший.
Входные данные
В первой строке записано число $n ( n \leqslant 100 )$. В следующей строке записано $n$ целых чисел, каждое из которых по модулю не превосходит $100$.
Выходные данные
Вывести обновленный массив.
Тесты
№ | Входные данные | Выходные данные |
---|---|---|
1 | 7 3 5 -7 7 5 -9 -4 |
3 5 -7 -9 5 7 -4 |
2 | 2 1 2 |
2 1 |
3 | 9 12 99 87 42 55 8 65 40 72 |
12 8 87 55 99 65 40 72 |
4 | 8 -9 0 7 -5 2 5 1 -2 |
7 0 -9 -5 2 5 1 -2 |
Код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <iostream> using namespace std; int main() { int n; cin >> n; int *x = new int [n]; for ( int i = 0; i < n; i++ ) cin >> x [i]; int min = 100; int max = -100; for ( int i = 0; i < n; i++ ) { if ( x [i] > max ) max = x [i]; if ( x [i] < min ) min = x [i]; } for ( int i = 0; i < n; i++ ) { if ( x [i] == max ) x [i] = min; else if ( x [i] == min ) x [i] = max; } for ( int i = 0; i < n; i++ ) cout << x [i] << " "; return 0; } |
Решение
Для начала нам надо найти максимум и минимум в массиве. Для этого введем переменные максимума и минимума равные $-100$ и $100$. (Так как элементы массива по условию не должны превышать значения $|100|$ ). Проверяем. Если значение элемента массива больше значения переменной максимума, присваиваем переменной это значение. Аналогично и для минимума. Затем присвоим максимальному элементу массива минимальное, а минимальному — максимальное.
Ссылки
Условие задачи на E-olymp
Код на Ideone
Засчитанное решение на E-olymp