fork download
  1. import java.util.*;
  2. import java.lang.*;
  3. import java.io.*;
  4.  
  5. class Main
  6. {
  7. public static long ss(int m, int k) {
  8. if (k < 1 || m < 1) return 0;
  9. if (k == 1) return 1;
  10. if (2 * m < k * (k - 1)) return 0;
  11. long ac = 0;
  12. for (int t = m - (k - 1) * (k - 2) / 2; t >= k; t--)
  13. ac += tt(m, k, t);
  14. System.out.printf("Ss(%d,%d)=%d\n", m, k, ac);
  15. return ac;
  16. }
  17.  
  18. private static long tt(int m, int k, int t) {
  19. if (k < 1 || m < 1) return 0;
  20. if (k == 1) return t == m ? 1 : 0;
  21. if (2 * m < k * (k - 1)) return 0;
  22. if (t < k || t > m - (k - 1) * (k - 2) / 2)
  23. return 0;
  24. long ac = 0;
  25. for (int s = 1; s < t; s++)
  26. ac += tt(m - t, k - 1, s);
  27. return ac;
  28. }
  29.  
  30. public static void main(String[] args) {
  31. ss(20, 5);
  32. }
  33.  
  34. }
Success #stdin #stdout 0.04s 4386816KB
stdin
Standard input is empty
stdout
Ss(20,5)=7