Pagini recente » Cod sursa (job #438606) | Cod sursa (job #893747) | Cod sursa (job #2472755) | Rating Dohotar Mircea Ionut (op_delivers) | Cod sursa (job #1518762)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <algorithm>
#define MAX_N 50000
int v[MAX_N], n;
char sign[MAX_N + 1];
long long target;
long long current;
bool flag;
void bkt(int indx) {
if (current != target) {
int i = indx;
while (i >= 0 && !flag) {
sign[i] = '-';
current -= 2 * v[i];
if (current >= target) {
bkt(i - 1);
}
if (!flag) {
sign[i] = '+';
current += 2 * v[i];
i--;
}
}
} else {
flag = 1;
}
}
int main(void) {
int i;
FILE *f = fopen("semne.in", "r");
fscanf(f, "%d%lld", &n, &target);
current = 0LL;
for (i = 0; i < n; i++) {
fscanf(f, "%d", &v[i]);
current += v[i];
sign[i] = '+';
}
fclose(f);
bkt(n - 1);
f = fopen("semne.out", "w");
sign[n] = '\0';
fputs(sign, f);
fclose(f);
return 0;
}