Cod sursa(job #53744)

Utilizator peanutzAndrei Homorodean peanutz Data 23 aprilie 2007 09:04:40
Problema Semne Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <stdlib.h>
#include <stdio.h>
#include <time.h>

#define NMAX 50100

long n;
long long s, crt;
int a[NMAX];
int nr[NMAX];

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

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

	for(i = 0; i < n; ++i)
	{
		scanf("%d ", &a[i]);
	
			if(crt < s)
			{
			crt += a[i];
			nr[i] = 1;
			}
			else
			{
			crt -= a[i];
			nr[i] = -1;
			}
	
	}

	
	randomize();
	while(crt != s)
	{

		aux = random(n);

		//nr[aux] *= (-1);
		if(crt < s && nr[aux] == -1)
			crt += 2 * a[aux] * (nr[aux] *= -1);
		else if(crt > s && nr[aux] == 1)
			crt += 2 * a[aux] * (nr[aux] *= -1);
	}

	for(i = 0; i < n; ++i)
	{
		if(nr[i] == 1)
			printf("+");
		else
			printf("-");
	}

	printf("\n");

	fclose(stdin);
	fclose(stdout);

	return 0;
}