Kth root problem

I tried to go long long int for every variable due to the limit.
Can you tell me what’s wrong with me code even tho it’s looks fine to me.

#include
using namespace std;

auto kth_root(long long int n, long long int k){
long long int s=0;
long long int e=n;
long long int soln=-1;

while (s<=e){
	long long int mid=(s+e)/2;
	long long int ans=mid;
	long long int times=k;	
	while (times>1){
		ans*=mid;
		times--;
	}
	if(ans==n){
		return mid;
	}
	else if(ans>n){
		e=mid-1;
	}
	else if(ans<n){
		soln=mid;
		s=mid+1;
	}
}
return soln;

}

int main(){
long long int t;
cin>>t;
for (int i=0;i<t;i++){
long long int n,k;
cin>>n>>k;
cout<<kth_root(n,k)<<endl;
}
return 0;
}

Initialise soln with 1