Pagini recente » Cod sursa (job #420192) | Cod sursa (job #2672053) | Cod sursa (job #989769) | Cod sursa (job #696537) | Cod sursa (job #71361)
Cod sursa(job #71361)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define maxn 50000
#define fout out
FILE *in = fopen("semne.in","r"), *out = fopen("semne.out","w");
int a[maxn];
char semn[maxn];
//char schimb[maxn];
int n;
long long s;
void read()
{
fscanf(in, "%d %lld", &n, &s);
for ( int i = 0; i < n; ++i )
fscanf(in, "%d", &a[i]);
}
long long sum()
{
long long sm = 0;
for ( int i = 0; i < n; ++i )
if ( semn[i] == 0 )
sm -= a[i];
else
sm += a[i];
return sm;
}
int main()
{
read();
srand((unsigned)time(0));
long long sol = 0;
while ( sol != s )
{
int q = rand();
int p = rand();
int t = (p + q) % n;
//semn[t] = ( semn[t] == 1 ) ? 0 : 1;
semn[t] ^= 1;
sol = sum();
//
// if ( schimb[t] == 0 )
// {
// if ( semn[t] == 1 )
// s += a[t];
// else
// s -= a[t];
// schimb[t] = 1;
// }
// else
// {
// if ( semn[t] == 1 )
// s = 2*a[t];
// else
// s = 2*a[t];
// }
}
for ( int i = 0; i < n; ++i )
if ( semn[i] == 0 )
fprintf(fout, "-");
else
fprintf(fout, "+");
return 0;
}