Advertisement
Guest User

Untitled

a guest
Jul 16th, 2015
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.53 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cmath>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7.  
  8. typedef unsigned long long ull;
  9.  
  10. const ull M = 10000007;
  11.  
  12. ull ipow(ull a, ull p)
  13. {
  14.     ull t = a, ret = 1;
  15.     for ( ; p; p >>= 1, t = (t * t) % M)
  16.         if (p & 1)
  17.             ret = (ret * t) % M;
  18.     return ret;
  19. }
  20.  
  21. int main()
  22. {
  23.     int n, k;
  24.     ull ans;
  25.     while (scanf("%d%d", &n, &k) == 2 && (n | k))
  26.     {
  27.         ans = 2 * ipow(n - 1, k) + ipow(n, k) +
  28.             2 * ipow(n - 1, n - 1) + ipow(n, n);
  29.         ans %= M;
  30.         printf("%llu\n", ans);
  31.     }
  32.     return 0;
  33. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement