Pagini recente » Cod sursa (job #290776) | Cod sursa (job #712667) | Cod sursa (job #1991362) | Cod sursa (job #1823868) | Cod sursa (job #1558726)
#include <cstdio>
using namespace std;
#define Nmax 50002
FILE *f = fopen ( "semne.in", "r" );
FILE *g = fopen ( "semne.out", "w" );
int N, v[Nmax];
char sgn[Nmax];
long long S, Now = 0;
bool STOP = 0;
void bkt ( int poz ){
if ( Now != S ){
int i = poz;
while ( i > 0 && !STOP ){
sgn[i] = '-';
Now -= 2 * v[i];
if ( Now >= S )
bkt ( poz - 1 );
if ( !STOP ){
sgn[i] = '+';
Now += 2 * v[i];
i--;
}
}
}
else
STOP = 1;
}
int main(){
fscanf ( f, "%d%lld", &N, &S );
for ( int i = 1; i <= N; ++i ){
fscanf ( f, "%d", &v[i] );
sgn[i] = '+';
Now += v[i];
}
bkt ( N );
fprintf( g, "%s", sgn+1 );
return 0;
}