Cod sursa(job #562321)

Utilizator VisuianMihaiMihai Visuian VisuianMihai Data 22 martie 2011 20:48:36
Problema Semne Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<fstream> 
using namespace std; 
ifstream fin("semne.in"); 
ofstream fout("semne.out"); 
long long sa,sb,s; 
int a[50001],b[50001],na,nb,n,x[50001],i; 
int main() 
{
	fin>>n>>s; 
	na=n/2; 
	nb=n-na; 
	for(i=1;i<=n;i++) 
	{
		fin>>x[i]; 
		if(i<=na)    
		{
			a[i]=i;    
			sa+=x[i];
		} 
		else
		{
			b[i-na]=i;    
			sb+=x[i];
		}
	} 
	while((sa-sb)!=s) 
	{
		while((sa-sb)>s) 
		{
			b[++nb]=a[i]; 
			sa=sa-x[a[i]]; 
			sb=sb+x[a[i]]; 
			a[i]=a[na]; 
			a[na]=0; 
			--na;
		} 
		while((sa-sb)<s) 
		{
			a[++na]=b[i]; 
			sa=sa+x[b[i]]; 
			sb=sb-x[b[i]];    
			b[i]=b[nb]; 
			b[nb]=0; 
			--nb;
		}
	} 
	for(i=1;i<=na;i++) 
		x[a[i]]=0; 
	for(i=1;i<=n;i++) 
		if(x[i]==0) 
			fout<<"+";   
		else
			fout<<"-";
		fin.close();
		fout.close();
		return 0;
}