Advertisement
shek_shek

Untitled

Oct 6th, 2014
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <map>
  4. #include <vector>
  5. #include <set>
  6. #include <string>
  7. #include <list>
  8. #include <cstdlib>
  9. #include <algorithm>
  10. #include <iomanip>
  11. #include <queue>
  12. #include <stack>
  13. #include <bitset>
  14. #include <cassert>
  15. #include <cmath>
  16. #include <ctime>
  17.  
  18. using namespace std;
  19.  
  20. typedef unsigned long long li;
  21. typedef long double ld;
  22. typedef pair<int, int> pt;
  23.  
  24. #define all(a) a.begin(), a.end()
  25. #define pb push_back
  26. #define mp make_pair
  27. #define forn(i,n) for (int i = 0; i < int(n); ++i)
  28.  
  29. const int INF = 1e9;
  30. const ld EPS = 1e-9;
  31.  
  32. bool read()
  33. {
  34. return true;
  35. }
  36.  
  37. void solve()
  38. {
  39. int t, k;
  40. cin >> t >> k;
  41.  
  42. const int N = 100010;
  43.  
  44. vector<int> dp(N, 0);
  45. dp[0] = 1;
  46. int mod = 1e9 + 7;
  47.  
  48. forn (i, N)
  49. {
  50. if (i + 1 < N)
  51. dp[i + 1] = (dp[i + 1] + dp[i]) % mod;
  52. if (i + k < N)
  53. dp[i + k] = (dp[i + k] + dp[i]) % mod;
  54. }
  55.  
  56. vector<int> sum(N + 1);
  57. forn (i, N - 1)
  58. sum[i + 1] = (sum[i] + dp[i]) % mod;
  59.  
  60. forn (i, t)
  61. {
  62. int l, r;
  63. cin >> l >> r;
  64. cout << (sum[r + 1] - sum[l] + mod) % mod << endl;
  65. }
  66. }
  67.  
  68. int main() {
  69. #ifdef _DEBUG
  70. freopen("input.txt", "r", stdin);
  71. //freopen("output.txt", "w", stdout);
  72. #endif
  73.  
  74. read();
  75. solve();
  76.  
  77. return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement