Cod sursa(job #71365)

Utilizator info_arrandrei gigea info_arr Data 10 iulie 2007 13:17:36
Problema Semne Scor 65
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
using namespace std;

#define MAX_N 50005

#include <stdio.h>
#include <stdlib.h>

FILE *fin=fopen("semne.in","r"),
     *fout=fopen("semne.out","w");
   
int n,i,sp,sm,s;
int a[MAX_N];
bool p[MAX_N];   
          
int main()
{   
    fscanf(fin,"%d %d\n",&n,&s);

    for (i=1; i<=n; i++)
    {
     fscanf(fin,"%d",a+i);
     sp+=a[i]; p[i]=true;
    }
    int c;
    while (sp-sm!=s) 
     {
      c=(rand() % n);  
         
      if (sp-sm>s && p[c]==true)
       {        
         sp-=a[c]; sm+=a[c];
         p[c]=false;
         continue;
       }
      if (sp-sm<s && p[c]==false)
       { 
         sp+=a[c]; sm-=a[c];
         p[c]=true;
         continue;
       }
     }
    for (i=1; i<=n; i++) 
     if (p[i]==true) fprintf(fout,"+");
      else fprintf(fout,"-");                    
    
    fclose(fin); fclose(fout);  
      
    return 0;
}