Calcolatrice D'epoca (calcolatrice)

Mi da 5 casi sbagliati e non capisco quali siano ho solo capito che non grandi numeri (piu di 10 cifre) da numeri che non centrano niente,mi sapreste dire il parchè? Grazie in anticipo!
Questo è il codice:

#include <bits/stdc++.h>
using namespace std;
vector<int>v;
long long int n;
long long int N;
int contrario(long long int N){
	long long int NN=N;
	while(NN!=0){
		v.push_back(NN%10);
		NN=NN/10;
	}
	if(v.size()==0){
		return N;
	}
	if(find(v.begin(),v.end(),3)!=v.end() || find(v.begin(),v.end(),4)!=v.end() || find(v.begin(),v.end(),4)!=v.end() || v[0]==0){
		return N;
	}
	else{
		long long int mul=1;
		for(int i=v.size()-1;i>=0;i--){
			if(v[i]==6){
				n+=9*mul;
			}
			else{
				if(v[i]==9){
					n+=6*mul;
				}
				else{
					n+=v[i]*mul;
				}
			}
			mul*=10;
		}
		if(n>N){
			return N;
		}
		else{
			return n;
		}
	}
}
int main(){
    ofstream out("output.txt");
    ifstream in("input.txt");
	in>>N;
	n=0;
	out<<contrario(N);
}

97

Mannaggia!!! Avevo sbagliato a scrivere il terzo find al posto di 7 ho scritto 4