Pagini recente » Cod sursa (job #1581757) | Cod sursa (job #1530172) | Cod sursa (job #265568) | Cod sursa (job #171478) | Cod sursa (job #341009)
Cod sursa(job #341009)
#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;
}