Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int N, Q;
- int Num[201];
- int D;
- int M;
- int Count;
- int Case;
- int Data[11];
- void solve(int i, int start)
- {
- int j;
- if (i == M) {
- int sum = 0;
- for (j = 0; j < M; j++)
- sum += Data[j];
- if (sum % D == 0)
- Count++;
- return;
- }
- for (j = start; j <= N - 1 && N - j >= M - i; j++) {
- Data[i] = Num[j];
- solve(i + 1, j + 1);
- }
- }
- void readQuery()
- {
- scanf("%d %d", &D, &M);
- }
- void solveQuery()
- {
- Count = 0;
- solve(0, 0);
- }
- void printQuery()
- {
- printf("%d\n", Count);
- }
- void readCase()
- {
- int i;
- for (i = 0; i < N; i++)
- scanf("%d", &Num[i]);
- }
- void solveCase()
- {
- int i;
- for (i = 0; i < Q; i++) {
- readQuery();
- printf("QUERY %d: ", i + 1);
- solveQuery();
- printQuery();
- }
- }
- int main()
- {
- freopen("input.txt", "r", stdin);
- freopen("output.txt", "w", stdout);
- Case = 0;
- while (1) {
- scanf("%d %d", &N, &Q);
- if (0 == N && 0 == Q)
- break;
- Case++;
- printf("SET %d:\n", Case);
- readCase();
- solveCase();
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment