Pagini recente » Cod sursa (job #374009) | Cod sursa (job #287858) | Cod sursa (job #1679128) | Cod sursa (job #834362) | Cod sursa (job #501311)
Cod sursa(job #501311)
#include<cstdlib>
#include<ctime>
#include<cstdio>
#include<iostream>
using namespace std;
const int NMAX = 50005;
int N, S;
int A[NMAX];
int sum = 0;
void citire()
{
cin >> N >> S;
for(int i = 1 ; i <= N ; i++)
{
cin >> A[i];
sum += A[i];
}
}
inline int modul(int x)
{
if(x > 0)
return x;
return -x;
}
void obtine()
{
srand(time(0));
while(sum != S)
{
int x = rand() % N + 1;
if(modul(sum - 2 * A[x] - S) < modul(sum - S))
{
sum -= 2 * A[x];
A[x] *= -1;
}
}
}
void scrie()
{
for(int i = 1 ; i <= N ; i++)
if(A[i] > 0)
printf("+");
else
printf("-");
}
int main()
{
freopen("semne.in", "r", stdin);
freopen("semne.out", "w", stdout);
citire();
obtine();
scrie();
return 0;
}