Sometest case are failing, tell me which one is failing and correct the code

#include
using namespace std;

long long invertToMini(long long N){
long long rev=0,reva=0,r,r1,Ncopy;

    if(N==9)
 return N;

while(N>0){
	Ncopy=N;
	r=N%10;
//	Ncopy=Ncopy/10;
    r1=Ncopy%100;
	if(r1==9 and r==9)
	   r=9;
	else if(r>4)
	  r=9-r;
	rev=rev*10+r;
	N=N/10;  
}

while(rev>0){
	r=rev%10;
	reva=reva*10+r;
	rev=rev/10;  
}
return reva;

}
int main() {
long long cN;
cin>>cN;

cout<<invertToMini(cN);
return 0;

}

hi @pushkarsingh5247_4b1a78f1d102c737,
try 999 ans is 900