islam2366

uvaDivisibleGroupSumsssss

Apr 17th, 2019
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.00 KB | None | 0 0
  1. #include <stdio.h>
  2. int N, Q;
  3. int Num[201];
  4. int D;
  5. int M;
  6. int Count;
  7. int Case;
  8. int Data[11];
  9. void solve(int i, int start)
  10. {
  11. int j;
  12. if (i == M) {
  13. int sum = 0;
  14. for (j = 0; j < M; j++)
  15. sum += Data[j];
  16. if (sum % D == 0)
  17. Count++;
  18. return;
  19. }
  20. for (j = start; j <= N - 1 && N - j >= M - i; j++) {
  21. Data[i] = Num[j];
  22. solve(i + 1, j + 1);
  23. }
  24. }
  25. void readQuery()
  26. {
  27. scanf("%d %d", &D, &M);
  28. }
  29. void solveQuery()
  30. {
  31. Count = 0;
  32. solve(0, 0);
  33. }
  34. void printQuery()
  35. {
  36. printf("%d\n", Count);
  37. }
  38. void readCase()
  39. {
  40. int i;
  41. for (i = 0; i < N; i++)
  42. scanf("%d", &Num[i]);
  43. }
  44. void solveCase()
  45. {
  46. int i;
  47. for (i = 0; i < Q; i++) {
  48. readQuery();
  49. printf("QUERY %d: ", i + 1);
  50. solveQuery();
  51. printQuery();
  52. }
  53. }
  54. int main()
  55. {
  56. freopen("input.txt", "r", stdin);
  57. freopen("output.txt", "w", stdout);
  58. Case = 0;
  59. while (1) {
  60. scanf("%d %d", &N, &Q);
  61. if (0 == N && 0 == Q)
  62. break;
  63. Case++;
  64. printf("SET %d:\n", Case);
  65. readCase();
  66. solveCase();
  67. }
  68. return 0;
  69. }
Add Comment
Please, Sign In to add comment