Cod sursa(job #724176)

Utilizator Robert29FMI Tilica Robert Robert29 Data 26 martie 2012 12:12:31
Problema Semne Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<stdio.h>
FILE*f=fopen("semne.in","r");
FILE*g=fopen("semne.out","w");
int n,v[50002];
long long s,sol;
char w[50002];
long long poz(long long a)
{
	if(a<0)
		return -a;
	return a;
}
int main()
{
	fscanf(f,"%d%lld",&n,&s);
	for(int i=1;i<=n;++i)
		fscanf(f,"%d",&v[i]);
	sol;
	for(int i=1;i<=n;++i)
		if(sol<s)
		{
			sol+=v[i];
			w[i]=1;
		}
		else
		{
			sol-=v[i];
		}
	
	while(sol!=s)
	{
		int ok=1;
		for(int i=1;ok;++i)
		{
			if(sol<s&&!w[i])
			{
				sol+=2*v[i];
				w[i]=1;
				ok=0;
			}
			else if(sol>s&&w[i])
			{
				sol-=2*v[i];
				w[i]=0;
				ok=0;
			}
			if(sol==s)
				break;
		}			
	}
	
	for(int i=1;i<=n;++i)
		if(w[i])
			fprintf(g,"+");
		else
			fprintf(g,"-");
	
	fclose(f);
	fclose(g);
	return 0;
}