Pagini recente » Cod sursa (job #2947285) | Cod sursa (job #2957638) | Cod sursa (job #819033) | Cod sursa (job #311112) | Cod sursa (job #1167812)
#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;
}
v[i]*=2;
}
srand(time(NULL));
while ( s!=sum ){
int x=rand()%n+1;
if ( s>sum ){
while ( semn[x]==-1 )
--x;
if ( x==0 ){
x=n;
while ( semn[x]==-1 )
--x;
}
s-=v[x];
semn[x]=-1;
continue;
}
while ( semn[x]==1 )
--x;
if ( x==0 ){
x=n;
while ( semn[x]==1 )
--x;
}
s+=v[x];
semn[x]=1;
}
for ( int i=1;i<=n;++i ){
if ( semn[i]==1 )
fprintf(h,"+");
else fprintf(h,"-");
}
return 0;
}