Pagini recente » Cod sursa (job #592011) | Cod sursa (job #2875886) | Cod sursa (job #338371) | Cod sursa (job #1042792) | Cod sursa (job #1167795)
#include <cstdio>
#include <ctime>
#include <cstdlib>
using namespace std;
FILE*f=fopen("semne.in","r");
FILE*h=fopen("semne.out","w");
int semn[50001];
int v[50001];
int main(){
int n,sum,s=0,k;
fscanf(f,"%d%d",&n,&sum);
k=n/2;
for ( int i=1;i<=k;++i ){
semn[i]=1;
fscanf(f,"%d",&v[i]);
s+=v[i];
}
++k;
for ( int i=k;i<=n;++i ){
semn[i]=-1;
fscanf(f,"%d",&v[i]);
s-=v[i];
}
srand(time(NULL));
while ( s!=sum ){
if ( s>sum ){
int x=rand()%n+1;
while ( semn[x]==-1 )
++x;
if ( x>n ){
x=1;
while ( semn[x]==-1 )
++x;
}
s-=2*v[x];
semn[x]=-1;
continue;
}
int x=rand()%n+1;
while ( semn[x]==1 )
++x;
if ( x>n ){
x=1;
while ( semn[x]==1 )
++x;
}
s+=2*v[x];
semn[x]=1;
}
for ( int i=1;i<=n;++i ){
if ( semn[i]==1 )
fprintf(h,"+");
else fprintf(h,"-");
}
return 0;
}