Mai intai trebuie sa te autentifici.

Cod sursa(job #1697912)

Utilizator Bodo171Bogdan Pop Bodo171 Data 3 mai 2016 10:45:34
Problema Semne Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <iostream>
#include<fstream>
#include<cstdlib>
#include<ctime>;
using namespace std;
struct num
{
    int a,b;
}p[50005],m[50005];
char st[50005];
int n,sum,u1,u2,i,s,x;
int main()
{
  ifstream f("semne.in");
  ofstream g("semne.out");
  f>>n>>sum;
  srand(time(NULL));
  for(i=1;i<=n;i++)
  {
      f>>p[i].a;
      p[i].b=i;
      s+=p[i].a;
  }
  u1=n;u2=0;
  while(s!=sum)
  {
      if(s>sum)
      {
          x=rand()%u1+1;
          u2++;
          s-=2*p[x].a;
          m[u2]=p[x];
          p[x]=p[u1];
          u1--;
      }
      else
      {
          x=rand()%u2+1;
          u1++;
          s+=2*m[x].a;
          p[u1]=m[x];
          m[x]=m[u2];
          u2--;
      }
  }
  for(i=1;i<=u1;i++)
  {
      st[p[i].b]='+';
  }
  for(i=1;i<=u2;i++)
  {
      st[m[i].b]='-';
  }
  for(i=1;i<=n;i++) g<<st[i];
    return 0;
}