Pagini recente » Cod sursa (job #2969931) | Cod sursa (job #2829059) | Cod sursa (job #1443503) | Cod sursa (job #2235359) | Cod sursa (job #341043)
Cod sursa(job #341043)
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
FILE *f,*g;
long long s,S;
long n,i,a[50002],sol[50002];
int main(){
f=fopen("semne.in","r");
g=fopen("semne.out","w");
fscanf(f,"%ld%lld",&n,&S);
for(i=1;i<=n;i++)
fscanf(f,"%ld",&a[i]);
srand(time(NULL));
int ok=1;
do{
for(i=1;i<=n;i++)
sol[i]=rand()%2;
s=0;
for(i=1;i<=n;i++)
if(sol[i]==1)s+=a[i];
else s-=a[i];
if(s>0&&S>0) ok=0;
else
if(s<0&&S<0) ok=0;
}while(ok);
ok=1;
do{
i=rand()%n+1;
if(s<S&&sol[i]==0){
sol[i]=1;
s+=a[i];
s+=a[i];
}
if(s>S&&sol[i]==1){
sol[i]=0;
s-=a[i];
s-=a[i];
}
if(s==S)ok=0;
}while(ok);
for(i=1;i<=n;i++)
if(sol[i]==0) fprintf(g,"-");
else fprintf(g,"+");
fprintf(g,"\n");
fclose(f);
fclose(g);
return 0;
}