Pagini recente » Cod sursa (job #1744454) | Cod sursa (job #2276402) | Cod sursa (job #2700754) | Cod sursa (job #169443) | Cod sursa (job #50889)
Cod sursa(job #50889)
#include <stdio.h>
#include <fstream>
using namespace std;
#define in "semne.in"
#define out "semne.out"
#define dim 50001
bool Semn[dim];
long long A[dim], Stotal[dim];
int S, stotal = 0;
int N;
int main()
{
srand(time(0)%666730);
freopen(in,"r",stdin);
freopen(out,"w",stdout);
scanf("%d", &N );
scanf("%lld", &S);
Stotal[0] = 0;
for ( int i = 1; i <= N; i++ )
{
scanf("%lld", &A[i]);
stotal += A[i];
Stotal[i] = Stotal[i-1] + A[i];
}
if ( stotal == S )
{
for ( int i = 1; i <= N; i++ )
printf("+");
return 0;
}
if ( stotal == -S )
{
for ( int i = 1; i <= N; i++ )
printf("+");
return 0;
}
memset(Semn,0,sizeof(Semn) );
int gasit = 0;
int minus = 0;
while ( gasit == 0 )
{
stotal = 0;
for ( int i = 1; i <= N; i++ )
{
Semn[i] = rand()%2;
if ( Semn[i] == 1 ) stotal += A[i];
else stotal -= A[i];
}
if ( stotal == S ) gasit = 1;
if ( stotal == -S ) gasit = 1, minus = 1;
}
if ( minus == 0 )
{
for ( int i = 1; i <= N; i++ )
{
if ( Semn[i] == 1 ) printf("+");
else printf("-");
}
}
else
{
for ( int i = 1; i <= N; i++ )
{
if ( Semn[i] == 1 ) printf("-");
else printf("+");
}
}
}