Advertisement
Rohit4Pal

Untitled

Jul 14th, 2021
806
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ff              first
  5. #define ss              second
  6. #define ll              long long
  7. #define pb              push_back
  8. #define mp              make_pair
  9. #define pii             pair<int,int>
  10. #define vi              vector<int>
  11. #define mii             map<int,int>
  12. #define pqb             priority_queue<int>
  13. #define pqs             priority_queue<int,vi,greater<int> >
  14. #define setbits(x)      __builtin_popcountll(x)
  15. #define zrobits(x)      __builtin_ctzll(x)
  16. #define mod             1000000007
  17. #define inf             1e18
  18. #define ps(x, y)         fixed<<setprecision(y)<<x
  19. #define mk(arr, n, type)  type *arr=new type[n];
  20. #define w(x)            int x; cin>>x; while(x--)
  21. #define pw(b, p)         pow(b,p) + 0.1
  22.  
  23. void fastIO() {
  24.     ios_base::sync_with_stdio(false);
  25.     cin.tie(NULL);
  26. }
  27.  
  28. int main() {
  29.  
  30.     fastIO();
  31.     int n,l,r;
  32.     cin>>n>>l>>r;
  33.    
  34.     vector<vi> dp(n,vi(3,0));
  35.     for(int i=l;i<=r;i++){
  36.         dp[0][i%3]++;
  37.         dp[1][i%3]++;
  38.     }
  39.    
  40.     int times=r-l+1;
  41.     for(int i=2;i<n;i++){
  42.         dp[i][0]=((ll)times*dp[i-1][0])%mod;
  43.         dp[i][1]=((ll)times*dp[i-1][2])%mod;
  44.         dp[i][2]=((ll)times*dp[i-1][1])%mod;
  45.     }
  46.    
  47.     ll sum=((ll)((ll)dp[n-1][0]+dp[n-1][1])%mod+dp[n-1][2])%mod;
  48.     cout<<sum<<endl;
  49.     return 0;
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement