Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- int S, n, st[1000], x[100];
- int valid(int p)
- {
- if (p>1)
- if (st[p]<st[p-1])
- return 0;
- int i, s = 0;
- for (i = 1; i <= p; i++)
- s = s + st[i];
- if (s > S)
- return 0;
- return 1;
- }
- int solutie (int p)
- {
- int i, s = 0;
- for (i = 1; i <= p; i++)
- s = s + st[i];
- if (s == S)
- return 1;
- return 0;
- }
- void afis(int p)
- {
- int i;
- for (i = 1; i <= p; i++)
- printf("%d ",st[i]);
- printf("\n");
- }
- void backtr(int p)
- {
- int i;
- for (i=0; i<=n; i++)
- {
- st[p] = x[i];
- if (valid(p))
- if (solutie(p))
- afis(p);
- else
- backtr(p+1);
- }
- }
- int main()
- {
- FILE *fin;
- fin = fopen("date.in","r");
- int i;
- fscanf(fin,"%d",&n);
- x[0] = 1;
- for (i = 1; i <= n; i++)
- fscanf(fin,"%d",&x[i]);
- fscanf(fin,"%d",&S);
- backtr(1);
- return 0;
- }
Add Comment
Please, Sign In to add comment