C++ Проблема с задачей про массивы.

День добрый. Столкнулась с несколькими проблемами при решение задачи на массивы. Задача звучала так: Даны два массива целых чисел. С помощью функции программа должна выводить наибольшее число массива А, которого нет в массиве В. И вот те самые проблемы. 1. Если ввести полностью одинаковые числа, программа выдаст 0, как знак того, что наибольшего числа нет. Что нужно изменить в коде, чтобы при вводе одинаковых чисел, программа выводила "Наибольшего числа нет". 2. Программа не распознает отрицательные числа. Заранее спасибо за помощь.


#include <iostream>

using namespace std;


void maxnum () {


int ok;

do{


int n,m;

cout << "Введите количество элементов массива A(n): " << endl;

cin >> n;

cout << "Введите количество элементов массива B(m): " << endl;

cin >> m;


int *a = new int [n];

int *b = new int [m];


int max = 0;


cout << "Введите элементы массива A(n): " << endl;

for (int i = 0; i < n; i++)

cin >> a[i];


cout << "Введите элементы массива B(m): " << endl;

for (int j = 0; j < m; j++)

cin >> b[j];


for (int i = 0; i < n; i++){

if (a[i] > max){

int temp = max;

max = a[i];


for (int j = 0; j < n; j++){

if (b[j] == a[i]){

max = temp;

delete a;

delete b;


}


}


}


}

cout << "Наибольшее число, которое есть в массиве А, но нет в массиве В: " << max << endl;

cout << "Еще раз или закончить??" << endl;

cin >> ok;

}while (ok == 1);

}


int main(){


maxnum();

return 0;

}