Cod sursa(job #801732)

Utilizator Marius96Marius Gavrilescu Marius96 Data 24 octombrie 2012 21:16:21
Problema Semne Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<cstdio>
#include<cstdlib>
long long v[50005];
bool p[50005];

int n;

int randn()
{
	return ((rand()>>16)+rand())%n;
}

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

	long long s,c=0;
	scanf ("%d%lld",&n,&s);
	for(int i=0;i<n;i++){
		scanf ("%lld",v+i);
		if(i%2)
			p[i]=1,c+=v[i];
		else
			p[i]=0,c-=v[i];
	}

	while(s!=c){
		int r=randn();
		if(c<s&&!p[r])
			c+=v[r]*2,p[r]=1;
		else if(c>s&&p[r])
			c-=v[r]*2,p[r]=0;
	}

	for(int i=0;i<n;i++)
		putchar (p[i]?'+':'-');

	return 0;
}