Pagini recente » Cod sursa (job #545941) | Cod sursa (job #1222751) | Cod sursa (job #1307784) | Cod sursa (job #215026) | Cod sursa (job #59518)
Cod sursa(job #59518)
#include <stdio.h>
#include <fstream>
#include <stdlib.h>
#include <time.h>
using namespace std;
#define in "semne.in"
#define out "semne.out"
#define dim 50001
int A[dim], N, S, K[dim];
bool Sel[dim];
int main()
{
freopen(in,"r",stdin);
freopen(out,"w",stdout);
K[0] = 0;
scanf("%d%d", &N, &S);
for ( int i = 1; i <= N; i++ )
scanf("%d", &A[i]), K[i] = A[i] + K[i-1];
int v;
int Sp = 0;
bool ok = 1;
while ( ok == 1 )
{
Sp = 0;
for ( int i = 1; i <= N; i++ )
{
v = rand();
if ( v&1 ) Sp += A[i], Sel[i] = 1;
else Sp -= A[i], Sel[i] = 0;
if ( Sp - K[i+1] > S ) break;
if ( Sp + K[i+1] < S ) break;
}
if ( Sp == S )
{
for ( int i = 1; i <= N; i++ )
if ( Sel[i] == 1 ) printf("+");
else printf("-");
ok = 0;
}
}
}