fork download
  1. #include "bits/stdc++.h"
  2. using namespace std;
  3. const int N = 5e3 + 3;
  4. const int mod = 1988;
  5. inline int add(int a , int b){
  6. int res = a + b;
  7. if(res >= mod){
  8. return res - mod;
  9. }
  10. return res;
  11. }
  12. int n , k;
  13. int dp1[N][N];
  14. int dp2[N][N];
  15. void pre(){
  16. for(n = 0 ; n < N ; ++n){
  17. dp1[n][1] = 1;
  18. dp2[n][1] = add(((n >= 2) ? dp2[n - 2][1] : 0) , dp1[n][1]);
  19. for(k = 2 ; k < N ; ++k){
  20. dp1[n][k] = dp2[n][k - 1];
  21. dp2[n][k] = add(((n > k) ? dp2[n - k - 1][k] : 0) , dp1[n][k]);
  22. }
  23. }
  24. }
  25. int main(){
  26. pre();
  27. while(~scanf("%d %d" , &n , &k)){
  28. if(n + k){
  29. printf("%d\n" , dp1[n - k][k]);
  30. }
  31. }
  32. }
Success #stdin #stdout 0.49s 198976KB
stdin
Standard input is empty
stdout
Standard output is empty