for all test cases the output is coming same as of 1st test case
#include
#include<math.h>
using namespace std;
int main()
{ int k,ans;
long long int no,n;
//cin>>no;
//cin>>p;
//cin>>k;
int s=0;
int e=no;
cin>>n;
pair <long long int,int>input[n];
int m;
//float ans;
for(int i=0;i<n;i++)
{ cout<<"no,k";
cin>>no>>k;
input[i].first=no;
input[i].second=k;
}
/float inc=0.1;
for(int i=0;i<p;i++){
while(pow(ans,k)<=no){
ans+=inc;
}
ans=ans-inc;
inc=inc/10;
}/
for(int i=0;i<n;i++)
{
while(s<=e){
m=(s+e)/2;
if(pow(m,input[i].second)==input[i].first){
ans=m;
//cout<<ans;
break;
}
else if(pow(m,input[i].second)<input[i].first)
{
s=m+1;
ans=m;
//cout<<ans;
//break;
}
else if(pow(m,input[i].second)>input[i].first){
e=m-1;}
}
cout<<ans<<endl;
}
return 0;}