Cod sursa(job #449052)

Utilizator wamfeverDobos Ionut wamfever Data 5 mai 2010 15:19:24
Problema Semne Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<fstream>
using namespace std;
ifstream fin("semne.in");
ofstream fout("semne.out");
int s[50001], v[50001], n, OK;
long long S;
char p[50001];

void suma()
{
     long long aux=0;
     for(int i=1; i<=n; i++)
	 {
             if(!s[i]) aux -= v[i];
		     else aux += v[i];
     }
     if(aux == S)
     {
            OK=1;
            for(int i=1; i<=n; i++) 
            {
                     if(s[i]) p[i] = '+';
		             else p[i] = '-';
            }
     }
}

void back(int k)
{
     int i;
	 for(i=0; i<=1; i++)
	 {
		      s[k]=i;
		      if(k==n) suma();
		      else if(!OK) back(k+1);
     }
}

int main()
{
    fin >> n >> S;
	for(int i=1; i<=n; i++) fin >> v[i];
	back(1);
	for(int i=1; i<=n; i++) fout << p[i];
	return 0;
}