fork download
  1. #include<iostream>
  2. #include<cmath>
  3. #define MOD 1000000007
  4. using namespace std;
  5. long long int fast_exp1(long long int base,long long int exp);
  6. int main()
  7. {
  8. int test;
  9. cin>>test;
  10. while(test--)
  11. {
  12. long long int n,k;
  13. cin>>n>>k;
  14. long long int a1=(k*(k-1))%MOD;
  15. long long int a2=(fast_exp1(k-1,2)-(k-2));
  16. long long int a3=fast_exp1(a2,n-1);
  17. long long int ans=(a1*a3)%MOD;
  18. cout<<ans<<"\n";
  19.  
  20. }
  21. return 0;
  22. }
  23. long long int fast_exp1(long long int base,long long int exp) {
  24. long long int res=1;
  25. while(exp>0) {
  26. if(exp%2==1) res=(res*base)%MOD;
  27. base=(base*base)%MOD;
  28. exp/=2;
  29. }
  30. return res%MOD;
  31. }
Success #stdin #stdout 0s 3300KB
stdin
1
2 31624
stdout
-800537500