#include <iostream>
#include <vector>
using namespace std;
template <typename T>
void bubbleSort(T* arr, int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
T temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
template <typename T>
void bubbleSort(vector<T>& v) {
for (int i = 0; i < v.size() - 1; i++) {
for (int j = 0; j < v.size() - i - 1; j++) {
if (v[j] > v[j + 1]) {
T temp = v[j];
v[j] = v[j + 1];
v[j + 1] = temp;
}
}
}
}
template <typename T>
void printArray(T* arr, int n) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
template <typename T>
void printVector(vector<T>& v) {
for (int i = 0; i < v.size(); i++) {
cout << v[i] << " ";
}
cout << endl;
}
int main() {
int n;
cin >> n;
int* arr = new int[n];
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
bubbleSort(arr, n);
printArray(arr, n);
delete[] arr;
vector<int> v = {5, 2, 8, 1, 3};
bubbleSort(v);
printVector(v);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBidWJibGVTb3J0KFQqIGFyciwgaW50IG4pIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbiAtIDE7IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbiAtIGkgLSAxOyBqKyspIHsKICAgICAgICAgICAgaWYgKGFycltqXSA+IGFycltqICsgMV0pIHsKICAgICAgICAgICAgICAgIFQgdGVtcCA9IGFycltqXTsKICAgICAgICAgICAgICAgIGFycltqXSA9IGFycltqICsgMV07CiAgICAgICAgICAgICAgICBhcnJbaiArIDFdID0gdGVtcDsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBidWJibGVTb3J0KHZlY3RvcjxUPiYgdikgewogICAgZm9yIChpbnQgaSA9IDA7IGkgPCB2LnNpemUoKSAtIDE7IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgdi5zaXplKCkgLSBpIC0gMTsgaisrKSB7CiAgICAgICAgICAgIGlmICh2W2pdID4gdltqICsgMV0pIHsKICAgICAgICAgICAgICAgIFQgdGVtcCA9IHZbal07CiAgICAgICAgICAgICAgICB2W2pdID0gdltqICsgMV07CiAgICAgICAgICAgICAgICB2W2ogKyAxXSA9IHRlbXA7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CnZvaWQgcHJpbnRBcnJheShUKiBhcnIsIGludCBuKSB7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGNvdXQgPDwgYXJyW2ldIDw8ICIgIjsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKfQp0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4Kdm9pZCBwcmludFZlY3Rvcih2ZWN0b3I8VD4mIHYpIHsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgdi5zaXplKCk7IGkrKykgewogICAgICAgIGNvdXQgPDwgdltpXSA8PCAiICI7CiAgICB9CiAgICBjb3V0IDw8IGVuZGw7Cn0KCmludCBtYWluKCkgewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIGludCogYXJyID0gbmV3IGludFtuXTsKICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gYXJyW2ldOwogICAgfQogICBidWJibGVTb3J0KGFyciwgbik7CiAgICBwcmludEFycmF5KGFyciwgbik7CiAgICBkZWxldGVbXSBhcnI7CiAgICB2ZWN0b3I8aW50PiB2ID0gezUsIDIsIDgsIDEsIDN9OwogICAgYnViYmxlU29ydCh2KTsKICAgIHByaW50VmVjdG9yKHYpOwogICAgcmV0dXJuIDA7Cn0=