#include <iostream>
using namespace std;

template <typename T, typename U, int size1, int size2>
bool equal(T (&arr1)[size1], U (&arr2)[size2] ){
	return false;
}


template <typename T, int size1, int size2>
bool equal(T (&arr1)[size1], T (&arr2)[size2] ){
	if(size1 == size2) {
		for(int i = 0 ; i < size1; ++i){
			if(arr1[i] != arr2[i]) return false;
		}
		return true;
	}
	return false;
}

int main() {
	int a1[]{1, 2, 3, 4};
	int a2[]{1, 2, 3, 4};
	int a3[]{1, 2, 3, 4, 5};
	float a4[]{1, 2, 3, 4};
	cout << "a1, a2 are "<< (equal(a1, a2) ? "same" : "different") <<endl ;
	cout << "a1, a3 are "<< (equal(a1, a3) ? "same" : "different") <<endl ;
	cout << "a1, a4 are "<< (equal(a1, a4) ? "same" : "different") <<endl ;
	
	return 0;
}