Cod sursa(job #772895)

Utilizator SteveStefan Eniceicu Steve Data 31 iulie 2012 14:26:09
Problema Semne Scor 55
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <fstream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main () {
	ifstream fin ("semne.in");
	int N, cnt = 0, a;
	long long S, Sp = 0, Slol;
	int v[50005];
	int x[50005];
	fin >> N >> S;
	for (int i = 0; i < N; i++)
	{
		fin >> v[i];
		Sp += 1LL * v[i];
	}
	Sp = (Sp - S) >> 1;
	srand (time (0));
	while (Slol != Sp)
	{
		cnt++;
		Slol = 0;
		for (int i = 0; i < N; i++)
		{
			a = rand () & 1;
			if (a && Slol + v[i] <= Sp) Slol += 1LL * v[i], x[i] = cnt;
		}
	}
	ofstream fout ("semne.out");
	for (int i = 0; i < N; i++)
	{
		fout << (x[i] == cnt ? '-' : '+');
	}
	fin.close ();
	fout.close ();
	return 0;
}