Pagini recente » Profil eudanip | Cod sursa (job #1519147) | oji_andrei2 | Cod sursa (job #1060864) | Cod sursa (job #29940)
Cod sursa(job #29940)
#include <stdio.h>
#include <math.h>
#define nmax 50001
long N, i, A[nmax], S[nmax], SS, suma, dif, difn;
int main(void)
{
freopen("semne.in","r", stdin);
freopen("semne.out", "w", stdout);
scanf("%ld%ld", &N, &SS);
for (i = 1; i <= N; ++i)
scanf("%ld", &A[i]);
for (i = 1; i <= N; ++i)
{
S[i] = -1;
suma = suma + S[i] * A[i];
}
for (i = 1; i <= N && suma < SS; ++i)
{
suma = suma - S[i] * 2 * A[i];
S[i] = -S[i];
}
dif = abs(SS - suma);
while (suma != SS)
{
for (i = 1; i <= N && suma != SS; ++i)
{
difn = abs(SS - suma + 2 * A[i] * S[i]);
if (difn < dif)
{
dif = difn;
suma = suma - S[i] * 2 * A[i];
S[i] *= -1;
}
}
}
for (i = 1; i <= N; ++i)
if (S[i] == -1)
printf("-");
else
printf("+");
printf("\n");
return 0;
}