Pagini recente » Cod sursa (job #2206328) | Cod sursa (job #1660728) | Cod sursa (job #2287832) | Cod sursa (job #2921967) | Cod sursa (job #1847)
Cod sursa(job #1847)
#include <stdio.h>
#include <stdlib.h>
#include <iostream.h>
long long S, sum;
int N;
char semn[50001];
int A[50001];
int main()
{
freopen("semne.in", "rt", stdin);
freopen("semne.out", "wt", stdout);
// FILE *fin = fopen("semne.in", "rt");
// FILE *fout = fopen("semne.out", "wt");
int i = 0, v;
srand( (unsigned)time(0) );
scanf("%d %lld", &N, &S);
for (i = 1; i <= N; i++)
{
scanf("%d", &A[i]);
//if (v == 0) sum += A[i];
//else sum -= A[i], semn[i] = 1;
if (i < N/2)
sum += A[i], semn[i-1] = '+';
else sum -= A[i], semn[i-1] = '-';
}
// fclose(fin);
while (S != sum)
{
if (S < sum)
{
v = (rand() % N) + 1;
while (semn[v-1] == '-')
v = (rand() % N) + 1;
semn[v-1] = '-';
sum -= 2*A[v];
}
if (S > sum)
{
v = (rand() % N) + 1;
while (semn[v-1] == '+')
v = (rand() % N) + 1;
semn[v-1] = '+';
sum += 2*A[v];
}
}
printf("%s", semn);
// fclose(fout);
return 0;
}