Решение задачи Переставить min и max с Mccme

Без пояснения   Просмотров: 28


В списке все элементы различны. Поменяйте местами минимальный и максимальный элемент этого списка.


Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
    string s;
    getline(cin, s);
    s.insert(0, " ");
    int pos = s.find(" "), pos1;
    if(s[s.size() - 1] == ' ')
        s.pop_back();
    vector<int> a;
    while(pos + 1){
        pos1 = s.find(" ", pos + 1);
        a.push_back(stoi(s.substr(pos + 1, pos1 - pos - 1)));
        pos = pos1;
    }
    int mx = a[0], mxpos = 0, mnpos = 0, mn = a[0];
    for(int i = 0; i < a.size(); ++i){
        if(a[i] > mx){
            mx = a[i];
            mxpos = i;
        }
        if(a[i] < mn){
            mn = a[i];
            mnpos = i;
        }
    }
    swap(a[mnpos], a[mxpos]);
    for(int i = 0; i < a.size(); ++i)
        cout << a[i] << " ";
    return 0;
}

         

Администратор Photo Автор: Администратор


Код

a = list(input().split())
a = [int(i) for i in a]
mx = a[0]
mn = a[0]
mxpos = 0
mnpos = 0
for i in range(len(a)):
    if a[i] > mx:
        mx = a[i]
        mxpos = i
    if a[i] < mn:
        mn = a[i]
        mnpos = i
a[mnpos], a[mxpos] = a[mxpos], a[mnpos]
for i in a:
    print(i, end = " ")

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться