fork download
  1. #include <cstdio>
  2. #include <memory.h>
  3. #include <algorithm>
  4.  
  5. using namespace std;
  6.  
  7. int n, k;
  8. bool d[501][501];
  9. bool was[501][501];
  10.  
  11. bool calc(int a, int b)
  12. {
  13. if (was[a][b]) return d[a][b];
  14. was[a][b] = 1;
  15. d[a][b] = 0;
  16.  
  17. int left = max( (a > b) ? (b + 1) : 1, a - k);
  18. int right = min( (a < b) ? (b - 1) : n, a + k);
  19.  
  20. for (int next = left; next <= right; next++)
  21. if (next != a && next != b) d[a][b] |= 1 ^ calc(b, next);
  22. return d[a][b];
  23. }
  24.  
  25. int main() {
  26. scanf("%d%d", &n, &k);
  27.  
  28. memset(was, 0, sizeof was);
  29. puts(calc(1, n) ? "1" : "2");
  30. return 0;
  31. }
Success #stdin #stdout 0.01s 3172KB
stdin
5 2
stdout
2