Pagini recente » Cod sursa (job #543272) | Cod sursa (job #1869924) | Cod sursa (job #2270181) | Cod sursa (job #1683858) | Cod sursa (job #11839)
Cod sursa(job #11839)
#include <stdio.h>
long long a[50010], n, s, s2=0, x[50010], ok=1;
FILE* g=fopen ("semne.out", "w");
void afis ()
{
int i;
for (i=0; i<n; i++) if (x[i]==0) fprintf (g, "+"); else fprintf (g, "-");
ok=0;
}
void back (int k)
{ int i, cop;
for (i=0; i<2; i++)
{ x[k]=i;
cop=s2;
if (x[k]==0) s2+=a[k]; else s2-=a[k];
if (k==n-1) {if (s2==s) afis(); }
else back(k+1);
s2=cop;
if (!ok) return;
}
}
int main()
{
FILE *f;
long long i;
f=fopen ("semne.in", "r");
fscanf (f, "%lld %lld", &n, &s);
for (i=0; i<n; i++) fscanf (f, "%lld ", &a[i]);
back(0);
fclose(f); fclose(g);
return 0;
}