Cod sursa(job #844556)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 29 decembrie 2012 15:07:50
Problema Semne Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include<iostream>
#include<fstream>
#include<time.h>
#include<stdlib.h>
using namespace std;

#define NMAX 50001

int v[NMAX],semn[NMAX];

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