Решение задачи Карточки с Acmp

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


Никита изготовил карточки, написав на них N первых заглавных букв английского алфавита. Карточки Никита положил в стопку. Дальше он берёт первую сверху карточку и кладет её в новую стопку. Далее вторую карточку он кладёт вверх этой новой стопки, третью – вниз новой стопки, потом четвертую – опять вверх, следующую – вниз и т.д.

После этого оказалось, что карточки лежат строго по алфавиту, если просматривать их сверху вниз.

Напишите программу, которая выведет, в каком порядке карточки лежали в исходной стопке.

Код

#include <bits/stdc++.h>

using namespace std;

int main()
{
//    ABC = BAC

    int n;
    string s, res;
    cin >> n;
    for(int i = 0; i < n; ++i){
        s+=int ('A') + i;
    }
    if(n % 2 == 0)
        while(s.size()){
            res.insert(0, 1, s[0]);
            res.insert(0, 1, s[s.size() - 1]);
            s.erase(0, 1);
            if(s.size())
                s.erase(s.size() - 1, 1);
        }
    else{
        while(s.size() > 1){
            res.insert(0, 1, s[s.size() - 1]);
            res.insert(0, 1, s[0]);
            s.erase(0, 1);
            s.erase(s.size() - 1, 1);
        }
        res.insert(0, 1, s[0]);
    }
    cout << res;
    return 0;
}

         

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




Комментарии

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