Pagini recente » Cod sursa (job #2674129) | Monitorul de evaluare | Cod sursa (job #1299531) | Cod sursa (job #1558745) | Cod sursa (job #50969)
Cod sursa(job #50969)
#include <stdio.h>
#include <stdlib.h>
#define dim 50001
long long A[dim];
long long S, Sum;
long N;
char Sol[dim];
void get_data();
void solve();
void print();
int main()
{
get_data();
solve();
print();
return 0;
}
void get_data()
{
freopen("semne.in", "r", stdin);
long i;
for(scanf("%ld %lld", &N, &S), i=1; i<=N; ++i)
{
scanf("%lld", A+i);
Sol[i-1] = '+';
Sum += A[i];
}
fclose(stdin);
}
void solve()
{
long x;
while(Sum != S)
{
if(Sum > S)
{
x = rand() % N;
if(Sol[x] != '-')
{
Sum -= A[x+1];
Sum -= A[x+1];
Sol[x] = '-';
}
}
else
{
x = rand() % N;
if(Sol[x] != '+')
{
Sum += A[x+1];
Sum += A[x+1];
Sol[x] = '+';
}
}
}
}
void print()
{
freopen("semne.out", "w", stdout);
puts(Sol);
fclose(stdout);
}