#include <iostream>
using namespace std;
class Bai4 {
private:
int* arr;
int sl;
bool TonTai(int x) const {
for (int i = 0; i < sl; i++) {
if (arr[i] == x) return true;
}
return false;
}
public:
~Bai4() {
delete[] arr;
arr = nullptr;
sl = 0;
}
Bai4(int s = 0) {
sl = s;
arr = (sl > 0) ? new int[sl] : nullptr;
}
Bai4(const Bai4 &other) {
sl = other.sl;
arr = new int[sl];
for (int i = 0; i < sl; i++) {
arr[i] = other.arr[i];
}
}
Bai4& operator=(const Bai4 &other) {
if (this != &other) {
delete[] arr;
sl = other.sl;
arr = new int[sl];
for (int i = 0; i < sl; i++) {
arr[i] = other.arr[i];
}
}
return *this;
}
void Nhap() {
delete[] arr;
int n;
cin >> n;
arr = new int[n];
sl = 0;
for (int i = 0; i < n; i++) {
int val;
cin >> val;
if (!TonTai(val)) {
arr[sl++] = val;
}
}
}
void Xuat() const {
cout << "{ ";
for (int i = 0; i < sl; i++) {
cout << arr[i] << " ";
}
cout << "}\n";
}
void ThemPhanTu(int x) {
if (TonTai(x)) return;
int* temp = new int[sl + 1];
for (int i = 0; i < sl; i++) {
temp[i] = arr[i];
}
temp[sl] = x;
delete[] arr;
arr = temp;
sl++;
}
void XoaPhanTu(int x) {
int pos = -1;
for (int i = 0; i < sl; i++) {
if (arr[i] == x) {
pos = i;
break;
}
}
if (pos == -1) return;
int* temp = new int[sl - 1];
for (int i = 0, j = 0; i < sl; i++) {
if (i == pos) continue;
temp[j++] = arr[i];
}
delete[] arr;
arr = temp;
sl--;
}
void Hop(const Bai4 &a) {
Bai4 kq = *this;
for (int i = 0; i < a.sl; i++) {
if (!kq.TonTai(a.arr[i])) {
kq.ThemPhanTu(a.arr[i]);
}
}
cout << "Ket qua Hop: ";
kq.Xuat();
}
void Giao(const Bai4 &a) {
Bai4 kq;
for (int i = 0; i < sl; i++) {
if (a.TonTai(arr[i])) {
kq.ThemPhanTu(arr[i]);
}
}
cout << "Ket qua Giao: ";
kq.Xuat();
}
void Tru(const Bai4 &a) {
Bai4 kq;
for (int i = 0; i < sl; i++) {
if (!a.TonTai(arr[i])) {
kq.ThemPhanTu(arr[i]);
}
}
cout << "Ket qua Tru (A \\ B): ";
kq.Xuat();
}
};
int main() {
Bai4 A, B;
A.Nhap();
B.Nhap();
A.Xuat();
B.Xuat();
A.Hop(B);
A.Giao(B);
A.Tru(B);
return 0;
}