Cod sursa(job #385619)

Utilizator ErgoVicol Sergiu Constantin Ergo Data 23 ianuarie 2010 10:28:19
Problema Semne Scor 55
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.67 kb
#include <fstream>
#include <cstdlib>
#include <ctime>

#define NMAX 50010

using namespace std;

ifstream fin("semne.in");
ofstream fout("semne.out");


int main()
{
	
	long long suma = 0, sumaAux, sum;
	int A[NMAX], N, i, x;
	char s[NMAX];
		
	srand(time(0));
	
	fin >>N >>sum;
	for (i = 1; i<= N; i++)
		fin >>A[i], suma += A[i], s[i] = '+';
	
	sumaAux = suma;
	
	while (sumaAux != sum)
	{
		sumaAux = suma;
		
		for (i = 1; i <= N; i++)
		{
			x = rand()%2;
			if (x && sumaAux - 2*A[i] >= sum) 
				sumaAux -= 2*A[i], s[i] = '-';
			else 
				s[i] = '+';
		}
	}
		
	for (i = 1; i <= N; i++)
		fout <<s[i];
		
	fout.close();
	return 0;
}