Pagini recente » Cod sursa (job #1450405) | Cod sursa (job #2706207) | Cod sursa (job #5127) | Cod sursa (job #2402333) | Cod sursa (job #82903)
Cod sursa(job #82903)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#define maxn 50000
#define fout out
FILE *in = fopen("semne.in","r"), *out = fopen("semne.out","w");
int a[maxn];
char semn[maxn];
int n;
long long s;
long long sol = 0;
void read()
{
fscanf(in, "%d %lld\n", &n, &s);
int tt = 0;
char buf[1024];
while ( fread(buf, 1, 1024, in) )
{
int l = strlen(buf);
for ( int i = 0; i < l; ++i )
if ( buf[i] <= '9' && buf[i] >= '0' )
a[tt] = a[tt]*10 + (buf[i] - '0');
else if ( buf[i] == ' ' )
{
int t = rand() & 1;
if ( t == 0 )
{
sol += a[tt];
semn[tt] = 1;
}
else
{
sol -= a[tt];
semn[tt] = -1;
}
++tt;
}
}
// std::sort(a, a+n);
}
int main()
{
srand(time(0));
read();
while ( sol != s )
{
int q = rand();
if ( q >= n )
q %= n;
if ( sol < s && semn[q] == -1 )
sol += (a[q]<<1), semn[q] = 1;
else if ( sol > s && semn[q] == 1 )
sol += (a[q]<<1) * (semn[q] = -1);
}
for ( int i = 0; i < n; ++i )
if ( semn[i] == -1 )
fprintf(fout, "-");
else
fprintf(fout, "+");
// fputs(lol, out);
return 0;
}