Cod sursa(job #341009)

Utilizator ZethpixZethpix Zethpix Data 17 august 2009 12:28:56
Problema Semne Scor 20
Compilator cpp Status done
Runda Summer Camp #5 Marime 0.74 kb
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
FILE *f,*g;
int ok=0;
long s,S,n,i,a[50002],sol[50002];
void back(long k){
	long i;
	if (k>n){
		if(s==S){
			for(i=1;i<=n;i++)
				if(sol[i]==0) fprintf(g,"-");
				else fprintf(g,"+");
			ok=1;
			if(ok) return;
		}
	}
	else
		for(i=0;i<=1;i++){
			sol[k]=i;
			if(i==0) s-=a[k];
			if(i==1) s+=a[k];
			back(k+1);
			if(ok) return;
			if(i==0) s+=a[k];
			if(i==1) s-=a[k];			
		}
}
int main(){
	f=fopen("semne.in","r");
	g=fopen("semne.out","w");
	fscanf(f,"%ld%ld",&n,&S);
	for(i=1;i<=n;i++)
		fscanf(f,"%ld",&a[i]);
    srand(time(NULL));
	for(i=1;i<=n;i++)
		sol[i]=rand()%2;
	s=0;
	back(1);
	fprintf(g,"\n");
	fclose(f);
	fclose(g);
	return 0;
}