Advertisement
Guest User

MINUSK

a guest
Feb 26th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.80 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. const int MOD = 2011;
  6.  
  7. int n, k;
  8. vector <int> last_minus, last_plus;
  9.  
  10. void read() {
  11.     ifstream fin("minusk.in");
  12.  
  13.     fin >> n >> k;
  14.  
  15.     fin.close();
  16. }
  17.  
  18. void solve() {
  19.     last_minus.resize(n + 1);
  20.     last_plus.resize(n + 1);
  21.  
  22.     last_plus[0] = 1;
  23.     for (int i = 1; i <= n; ++i) {
  24.         last_minus[i] = last_plus[i] = (last_minus[i - 1] + last_plus[i - 1]) + MOD;
  25.         if (i >= k) {
  26.             last_minus[i] -= last_plus[i - k];
  27.         }
  28.  
  29.         last_minus[i] %= MOD;
  30.         last_plus[i] %= MOD;
  31.     }
  32. }
  33.  
  34. void write() {
  35.     ofstream fout("minusk.out");
  36.  
  37.     fout << (last_minus[n] + last_plus[n]) % MOD;
  38.  
  39.     fout.close();
  40. }
  41.  
  42. int main() {
  43.     read();
  44.     solve();
  45.     write();
  46.     return 0;
  47. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement