Pagini recente » Cod sursa (job #432146) | Cod sursa (job #646756) | Cod sursa (job #2566000) | Cod sursa (job #39480) | Cod sursa (job #483194)
Cod sursa(job #483194)
#include<fstream>
#include<stdlib.h>
using namespace std;
long long sa,sb,s;
int a[50001],b[50001],na,nb,n,x[50001],i;
int main()
{ifstream q("semne.in");
ofstream w("semne.out");
q>>n>>s;
na=n/2;
nb=n-na;
for(i=1;i<=n;i++)
{q>>x[i];
if(i<=na)
{a[i]=i;
sa+=x[i];}
else
{b[i-na]=i;
sb+=x[i];}}
while((sa-sb)!=s)
{while((sa-sb)>s)
{i=rand()%na+1;
b[++nb]=a[i];
sa=sa-x[a[i]];
sb=sb+x[a[i]];
a[i]=a[na];
a[na]=0;
--na;}
while((sa-sb)<s)
{i=rand()%nb+1;
a[++na]=b[i];
sa=sa+x[b[i]];
sb=sb-x[b[i]];
b[i]=b[nb];
b[nb]=0;
--nb;}}
for(i=1;i<=na;i++)
x[a[i]]=-1;
for(i=1;i<=n;i++)
if(x[i]==-1)
w<<"+";
else
w<<"-";}