Cod sursa(job #3814)

Utilizator peanutzAndrei Homorodean peanutz Data 28 decembrie 2006 20:56:46
Problema Semne Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>

#define NMAX 500


long v[NMAX], n, s, sol;
char semne[NMAX];


void read()
{
int i;

scanf("%ld  %ld\n", &n, &s);

for(i = 0; i < n; ++i)
	{
		scanf("%ld ", &v[i]);
	}
}

void abort_this_shift()
{
int i;


semne[n] = '\0';

printf("%s\n", semne);


fclose(stdin);
fclose(stdout);


exit(0);
}



void back(int k)
{

if(k == n)
	{
		if(sol == s)
			{
				abort_this_shift();
			}
	}

else
	{
		semne[k] = '+';
		sol += v[k];
		back(k+1);

		sol -= v[k];


		semne[k] = '-';
		sol -= v[k];
		back(k+1);

		sol += v[k];
	}
}


int main()
{
freopen("semne.in", "r", stdin);
freopen("semne.out", "w", stdout);


read();


back(0);


return 0;
}