Pagini recente » Cod sursa (job #2189163) | Cod sursa (job #1062140) | Cod sursa (job #90486) | Cod sursa (job #942716) | Cod sursa (job #1167806)
#include <cstdio>
#include <ctime>
#include <cstdlib>
using namespace std;
FILE*f=fopen("semne.in","r");
FILE*h=fopen("semne.out","w");
char semn[50001];
int v[50001];
int main(){
int n,sum,s=0;
fscanf(f,"%d%d",&n,&sum);
for ( int i=1;i<=n;++i ){
fscanf(f,"%d",&v[i]);
if ( s<sum ){
s+=v[i];
semn[i]=1;
}
else {
s-=v[i];
semn[i]=-1;
}
}
srand(time(NULL));
while ( s!=sum ){
int x=rand()%n+1;
if ( s>sum ){
while ( semn[x]==-1 )
++x;
if ( x>n ){
x=1;
while ( semn[x]==-1 )
++x;
}
s-=2*v[x];
semn[x]=-1;
continue;
}
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;
}