fork download
  1. //+LNCT++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//
  2. //+------------------Lord Escanor : Sin Of Pride----------------------+//
  3. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++BHOPAL+//
  4.  
  5. #include <bits/stdc++.h>
  6.  
  7. #define fo(i, n) for (int i = 0; i < int(n); i++)
  8. #define of(i, n) for (int i = int(n) - 1; i >= 0; i--)
  9. #define Fo(i, l, r) for (int i = int(l); i < int(r); i++)
  10. #define correct(x, y, n, m) (0 <= (x) && (x) < (n) && 0 <= (y) && (y) < (m))
  11. #define all(a) (a).begin(), (a).end()
  12. #define sz(a) int((a).size())
  13. #define pb(a) push_back(a)
  14. #define mp(x, y) make_pair((x), (y))
  15. #define x first
  16. #define y second
  17. #define endl '\n'
  18. #define deb(x) cout << #x << " " << x << endl;
  19. #define fastIO ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
  20.  
  21. using namespace std;
  22.  
  23. typedef long long ll;
  24. typedef long double ld;
  25. typedef pair<int, int> pii;
  26. typedef vector<int> vi;
  27. typedef vector<vector<int>> vii;
  28.  
  29. template<typename X> inline X abs(const X& a) { return a < 0 ? -a : a; }
  30. template<typename X> inline X sqr(const X& a) { return a * a; }
  31.  
  32. const int INF = int(1e9);
  33. const ll INF64 = ll(1e18);
  34. const ld EPS = 1e-9, PI = 3.1415926535897932384626433832795;
  35.  
  36. const int MOD = 1e9 + 7;
  37. ll pw(ll a, ll b){
  38. ll res = 1ll;
  39. while(b){
  40. if(b & 1) res = res * a % MOD;
  41. a = a * a % MOD;
  42. b >>= 1;
  43. }
  44. return res;
  45. }
  46. void solve() {
  47. ll l, r, k;
  48. cin >> l >> r >> k;
  49. assert(r >= l);
  50. ll n = r - l + 1;
  51. ll odds = 0, evens = 0;
  52. if(l % 2 == 1 && r % 2 == 1){
  53. odds = (n - 1) / 2 + 1;
  54. evens = n - odds;
  55. }
  56. else if(l % 2 == 1 && r % 2 == 0){
  57. odds = n / 2;
  58. evens = n - odds;
  59. }
  60. else if(l % 2 == 0 && r % 2 == 0){
  61. evens = (n - 1) / 2 + 1;
  62. odds = n - evens;
  63. }
  64. else{
  65. evens = n / 2;
  66. odds = n - evens;
  67. }
  68. ll res = 0;
  69. res += pw(evens, k);
  70. if(k > 1){
  71. int xk = 2;
  72. for(int y = 0; y < k; ++y){
  73. if(xk > k) break;
  74. res += pw(odds, xk) * pw(evens, k - xk) % MOD;
  75. xk += 2;
  76. }
  77. }
  78. cout << evens << " " << odds << endl;
  79. cout << res << endl;
  80. }
  81.  
  82. int main() {
  83. fastIO;
  84. //#ifdef LOCAL
  85. //freopen("input.txt", "r", stdin);
  86. //freopen("output.txt", "w", stdout);
  87. //#endif
  88. int t = 1;
  89. // cin >> t;
  90. while (t--) {
  91. solve();
  92. }
  93. #ifdef LOCAL
  94. cout<<"\nTime Elapsed: " << 1.0*clock() / CLOCKS_PER_SEC << " sec\n";
  95. #endif
  96.  
  97. return 0;
  98. }
  99.  
Success #stdin #stdout 0s 4732KB
stdin
1 10
3
stdout
5 5
250