(我不知道是不是我快速幂写错了,若是我的问题还请各位大佬指出谢谢)
下为考场代码(已经注释掉freopen)
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define max_val 1000000000
ll a,b;
ll quickpow(ll base, ll p){
ll ans=1;
while(p){
if(p&1) ans*=base;
if(ans>max_val) return -1;
base*=base;
p>>=1;
}
return ans;
}
int main(){
// freopen("pow.in","r",stdin);
// freopen("pow.out","w",stdout);
scanf("%lld%lld",&a,&b);
ll qp=quickpow(a,b);
if(qp!=-1&&qp<=max_val) printf("%lld",qp);
else printf("-1");
return 0;
}