Cod sursa(job #82879)

Utilizator gabitzish1Gabriel Bitis gabitzish1 Data 9 septembrie 2007 14:38:54
Problema Semne Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<stdio.h>
#include<math.h>
#include<iostream.h>
#include<stdlib.h>

long s, v[50002], n, semn[50002], suma, suma2;

int main()
{
  freopen("semne.in","r",stdin);
  freopen("semne.out","w",stdout);

  scanf("%ld %ld", &n, &s);

  long long i, j, ok=0, x;
  suma=0;
  for (i=1; i<=n; i++) scanf("%ld",&v[i]), semn[i]=1, suma+=v[i];


  while (suma!=s)
    {

      for (i=1; i<=n; i++)
      {
	x=rand()%(n+1);
	if (semn[x]==1)
	  { if (abs(suma-2*v[x]-s)<abs(suma-s)) suma-=2*v[x], semn[x]=0;	   }
	else if (semn[x]==0)
	       if (abs(suma+2*v[x]-s)<abs(suma-s)) suma+=2*v[x], semn[x]=1;
      }
      
    }
  for (i=1; i<=n; i++)
    if (semn[i]==1) 
 	 printf("+");
    else printf("-");
    
  return 0;
}