fork download
  1. #include <stdio.h>
  2. #include <string.h>
  3. int main()
  4. {
  5. int n;
  6. int a[100];
  7. scanf("%d", &n);
  8. for (int i = 0; i < n; scanf("%d", &a[i++]));
  9. long long int c[21] = { 0 };
  10. long long int copy[21] = { 0 };
  11. c[a[0]]++;
  12. for (int i = 2; i < n; i++)
  13. {
  14. memset(copy, 0, sizeof(copy));
  15. for (int j = 0; j < 21; j++)
  16. {
  17. if (a[i-1] != 0)
  18. {
  19. if (c[j])
  20. {
  21. if (j + a[i - 1] < 21)
  22. copy[j + a[i - 1]] += c[j];
  23. if (j - a[i - 1] >= 0)
  24. copy[j - a[i - 1]] += c[j];
  25. copy[j] -= c[j];
  26. }
  27. }
  28. }
  29. for (int j = 0; j < 21; j++)
  30. {
  31. c[j] += copy[j];
  32. }
  33. }
  34. printf("%lld", c[a[n - 1]]);
  35. }
Success #stdin #stdout 0s 4492KB
stdin
11
8 3 2 4 8 7 2 4 0 8 8
stdout
5