Advertisement
What_Ever

Untitled

Feb 16th, 2016
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.63 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define MAX 100001
  4. long long dp[MAX],sums[MAX];
  5. int t,k;
  6. int main()
  7. {
  8.     cin >> t >> k;
  9.     for(int i = 1 ; i < k ; i++)
  10.     {
  11.         dp[i] = 1;
  12.         sums[i] = sums[i-1] + dp[i];
  13.     }
  14.     dp[k] = 2;
  15.     sums[k] = sums[k-1] + dp[k];
  16.     for(int i = k+1 ; i < MAX ; i++)
  17.     {
  18.         dp[i] = (dp[i-1] + dp[i-k])%1000000007;
  19.         sums[i] = (sums[i-1] + dp[i])%1000000007;
  20.     }
  21.     while(t--)
  22.     {
  23.         int a,b;
  24.         long long result = 0;
  25.         cin >> a >> b;
  26.         result = (sums[b] - sums[a-1])%1000000007;
  27.         cout << result << endl;
  28.     }
  29. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement