fork download
  1. #include<bits/stdc++.h>
  2. #define ull unsigned long long
  3. #define ll int64_t
  4. #define f(i,s,e) for(i=s;i<e;++i)
  5. #define endl << "\n"
  6. #define sp << " "
  7. #define INF INFINITY
  8. #define mset(a,b) memset(a,b,sizeof(a))
  9. #define mod 1000000007
  10. #define mp(a,b) make_pair(a,b)
  11. #define F first
  12. #define S second
  13. #define all(x) x.begin(),x.end()
  14. #define crap ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL)
  15. #define PI 3.14159265358979323846264338327950288419716939937510
  16. #define pb(a) push_back(a)
  17. #define pf(a) push_front(a)
  18. using namespace std;
  19.  
  20. ll fpower(ll x,ll y)
  21. {
  22. if(!y)
  23. return 1;
  24. x %= mod;
  25. return (y&1) ? x*fpower(x*x%mod,y/2)%mod : fpower(x*x%mod,y/2)%mod ;
  26. }
  27.  
  28. ll fpower1(ll a,ll b,ll c)
  29. {
  30. if(!c)
  31. return a%mod;
  32. if(c==1)
  33. return fpower(a,b) ;
  34. return (c&1) ? fpower1(fpower1(a,b,c/2),b,(c/2) + 1)%mod : fpower1(fpower1(a,b,c/2),b,c/2)%mod ;
  35. }
  36.  
  37.  
  38. int main()
  39. {
  40. // crap;
  41. int t;
  42. cin>>t;
  43. while(t--)
  44. {
  45. ll i,j,k,n,a,b,c;
  46. cin >> a >> b >> c;
  47. cout << fpower1(a,b,c) endl ;
  48. }
  49. return 0;
  50. }
Success #stdin #stdout 0.23s 4424KB
stdin
3
1213 21312 21312
2321313 19531 99322
239 31239 1239391
stdout
992569308
242960508
617836405