#include <iostream>
#include <fstream>
using namespace std;
void tablou(int n, int v[]) {
for (int i = 0; i < n; i++) {
cout << "Introduceti elementul " << i+1 << ": ";
cin >> v[i];
}
}
void sortareCrescatoare(int n, int v[]) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (v[i] > v[j]) {
int temp = v[i];
v[i] = v[j];
v[j] = temp;
}
}
}
}
void sortareDescrescatoare(int n, int v[]) {
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (v[i] < v[j]) {
int temp = v[i];
v[i] = v[j];
v[j] = temp;
}
}
}
}
void intersectie(int na, int a[], int nb, int b[], int c[], int& nc) {
nc = 0;
int i = 0, j = 0;
while (i < na && j < nb) {
if (a[i] < b[j]) {
i++;
} else if (a[i] > b[j]) {
j++;
} else {
c[nc] = a[i];
nc++;
i++;
j++;
}
}
}
int main() {
int na, nb;
cout << "Introduceti numarul de elemente pentru tabloul a: ";
cin >> na;
cout << "Introduceti numarul de elemente pentru tabloul b: ";
cin >> nb;
int a[100], b[100], c[100];
tablou(na, a);
tablou(nb, b);
sortareCrescatoare(na, a);
sortareDescrescatoare(nb, b);
int nc;
intersectie(na, a, nb, b, c, nc);
ofstream outFile("comune.out");
if (nc > 0) {
for (int i = 0; i < nc; i++) {
outFile << c[i] << " ";
}
} else {
outFile << "Nu exista";
}
outFile.close();
cout << "Elementele comune au fost scrise in fisierul comune.out.\n";
return 0;
}