Cod sursa(job #1663040)

Utilizator Bodo171Bogdan Pop Bodo171 Data 25 martie 2016 14:41:13
Problema Semne Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include <iostream>
#include<fstream>
#include<cstdlib>
#include<ctime>
using namespace std;

long long a[50005],i,n,sum,s,nr;
char semn[50005],semnul;
int main()
{
   srand(time(NULL));
   ifstream f("semne.in");
   ofstream g("semne.out");
   f>>n>>sum;
   for(i=1;i<=n;i++)
   {
       f>>a[i];
      if(s<sum) {s+=a[i];
       semn[i]='+';}
       else
       {
           s-=a[i];
           semn[i]='-';
       }

   }
   while(s!=sum)
   {
       if(s<sum)
       {
           semnul='+';
           nr=rand()%n+1;
           while(semn[nr]=='+')
           {
            nr++;
           }
           semn[nr]='+';
           s+=2*a[nr];
       }
       else
       {
           semnul='-';
           nr=rand()%n+1;
           while(semn[nr]=='-')
           {
               nr++;
           }
           semn[nr]='-';
           s-=2*a[nr];
       }

   }
   for(i=1;i<=n;i++) g<<semn[i];
    return 0;
}