Cod sursa(job #1742835)

Utilizator bciobanuBogdan Ciobanu bciobanu Data 17 august 2016 10:38:08
Problema Semne Scor 100
Compilator cpp Status done
Runda Lista lui wefgef Marime 0.83 kb
#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;
}