Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- #define int long long int
- #define LD long double
- const int N = 100010;
- int inf = 1e9;
- int mod = 1e9 + 9;
- inline void add(int &a, int b) {
- a += b;
- if (a >= mod) a -= mod;
- }
- inline void sub(int &a, int b) {
- a -= b;
- if (a < 0) a += mod;
- }
- inline int mul(int a, int b) {
- return (int) ((long long) a * b % mod);
- }
- inline int power(int a, int b) {
- int res = 1;
- while (b) {
- if (b%2 == 1) {
- res = mul(res, a);
- }
- a = mul(a, a);
- b/=2;
- }
- return res;
- }
- signed main()
- {
- ios_base::sync_with_stdio(0);
- cin.tie(0);
- cout.tie(0);
- int t;
- cin>>t;
- while(t--){
- int a,b,n;
- cin>>a>>b>>n;
- int ans = 0;
- if(a == 1){
- ans = mul(n,b);
- cout<<(1 + ans)%mod<<"\n";
- }
- else{
- add(ans, power(a,n+1));
- add(ans, mul(power(a,n), (b-1)));
- sub(ans, b);
- ans = mul(ans, power(a-1, mod-2));
- cout<<ans<<"\n";
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment