muditjain

AZ contest 3-4, High school maths

Jan 10th, 2022
39
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 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. add(ans, power(a,n+1));
  58.  
  59. add(ans, mul(power(a,n), (b-1)));
  60.  
  61. sub(ans, b);
  62.  
  63. ans = mul(ans, power(a-1, mod-2));
  64.  
  65. cout<<ans<<"\n";
  66. }
  67. }
  68. return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment