Cod sursa(job #166484)

Utilizator pandaemonAndrei Popescu pandaemon Data 28 martie 2008 01:39:51
Problema Semne Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.87 kb
#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
#include<time.h>
#define NMAX 50003

long long n,s,i,var,plus,minus,limA;

struct multime {int semn; long long val;} a[NMAX];

				// A - MULTIMEA +
			       //  B - MULTIMEA -

long long mutare(int sign)
{
  i=0;
  while(a[i].semn!=sign)
  i=rand()%n+1;

  a[i].semn*=-1;

  return a[i].val;  }


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

  scanf("%lld %lld",&n,&s);   srand( time(0) );

  for(i=1;i<=n;i++)
  {scanf("%lld",&a[i].val); plus+=a[i].val; a[i].semn=1;}

  limA=n;

  while(plus-minus!=s)
  {

    if(plus-minus<s) {var=mutare(-1); plus+=var; minus-=var;}
    if(plus-minus>s) {var=mutare(1); plus-=var; minus+=var;}

  }

  for(i=1;i<=n;i++)
  if(a[i].semn==1) printf("+");
  else printf("-");

  printf("\n"); return 0; }