muditjain

Maths 2

Jan 10th, 2022
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define int long long int
  5. #define LD long double
  6.  
  7. const int N = 100010;
  8.  
  9. int inf = 1e9;
  10. int mod = 1e9 + 9;
  11.  
  12. inline void add(int &a, int b) {
  13.     a += b;
  14.     if (a >= mod) a -= mod;
  15. }
  16.  
  17. inline void sub(int &a, int b) {
  18.     a -= b;
  19.     if (a < 0) a += mod;
  20. }
  21.  
  22. inline int mul(int a, int b) {
  23.     return (int) ((long long) a * b % mod);
  24. }
  25.  
  26. inline int power(int a, int b) {
  27.     int res = 1;
  28.     while (b) {
  29.         if (b%2 == 1) {
  30.             res = mul(res, a);
  31.         }
  32.         a = mul(a, a);
  33.         b/=2;
  34.     }
  35.     return res;
  36. }
  37.  
  38.  
  39. signed main()
  40. {
  41.     ios_base::sync_with_stdio(0);
  42.     cin.tie(0);
  43.     cout.tie(0);
  44.    
  45.     int t;
  46.     cin>>t;
  47.     while(t--){
  48.         int a,b,n;
  49.         cin>>a>>b>>n;
  50.         int ans = 0;
  51.        
  52.         if(a == 1){
  53.             ans = mul(n,b);
  54.             cout<<(1 + ans)%mod<<"\n";
  55.         }
  56.         else{
  57.             ans = mul(b, power(a,n));
  58.             sub(ans, b);
  59.             ans = mul(ans, power(a-1, mod-2));
  60.             add(ans, power(a,n));
  61.            
  62.             cout<<ans<<"\n";
  63.         }
  64.     }
  65.     return 0;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment