Задача понятна: дано число N и N строк. Нужно вывести эти строки в обратном порядке, то есть последнее слово — первым, предпоследнее — вторым и т.д.
Пошаговое объяснение
- Считать число N.
- Прочитать N строк и сохранить их в список/массив.
- Вывести элементы списка в обратном порядке, по одному на новой строке.
Сложность
- Временная: O(N), потому что нужно во всех элементах пройтись один раз при выводе.
- Память: O(N), для хранения всех N строк.
Пример Ввод: 5 сеанс культура вариант пирамида истопник
Вывод: истопник пирамида вариант культура сеанс
Код на Python (простой и понятный) import sys
def main(): data = sys.stdin.read().split() if not data: return n = int(data[0]) strings = data[1:1+n] for s in reversed(strings): print(s)
if name == "main": main()
Альтернативный вариант на C++ (для тех, кто предпочитает C++)
#include <bits/stdc++.h> using namespace std;
int main() { ios::sync_with_stdio(false); cin.tie(nullptr);
int n;
if (!(cin >> n)) return 0;
vector<string> a(n);
for (int i = 0; i < n; ++i) cin >> a[i];
for (int i = n - 1; i >= 0; --i) {
cout << a[i] << '\n';
}
return 0;
}
Если хочешь, могу адаптировать решение под другой язык программирования или учесть особые требования к вводимым строкам (например, строки с пробелами).