Cod sursa(job #803528)

Utilizator tibi9876Marin Tiberiu tibi9876 Data 27 octombrie 2012 19:06:46
Problema Semne Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<fstream>
#include<algorithm>
#include<ctime>
#include<cstdlib>
using namespace std;

bool c[50001];
int a[50001],b[50001],n,i,k,x;
long long s,sum;

int main()
{
	ifstream f("semne.in");
	ofstream g("semne.out");
	srand(time(NULL));
	f >> n >> s;
	sum=0;x=n/2;
	for (i=1;i<=n;i++)
	{
		f >> a[i];
		s+=a[i];
		if (i<=x)
			sum+=a[i];
		b[i]=i;
	}
	s/=2;
	while (s!=sum)
	{
		if (s>sum)
		{
			x++;
			k=rand()%(n-x+1)+x;
			swap(a[k],a[x]);
			swap(b[k],b[x]);
			sum+=a[x];
		}
		else 
		{
			k=rand()%x+1;
			swap(a[k],a[x]);
			swap(b[k],b[x]);
			sum-=a[x];
			x--;
		}
	}
	for (i=1;i<=x;i++)
		c[b[i]]=1;
	for (i=1;i<=n;i++)
		if (c[i]==0)
			g << '-';
		else g << '+';
	return 0;
}