Cod sursa(job #69095)

Utilizator FlorianFlorian Marcu Florian Data 1 iulie 2007 11:23:32
Problema Semne Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.96 kb
#include<stdio.h>
#include<stdlib.h>
FILE*f=fopen("semne.in","r");
FILE*g=fopen("semne.out","w");
long a[50009],viz[50009],S,n,s;
void read()
        {
        long i;
        fscanf(f,"%ld %ld",&n,&S);
        for(i=1;i<=n;++i) {fscanf(f,"%ld",&a[i]); viz[i]=1;s+=a[i];}
        }
void afisare()
        {
        long x,i;
        for(i=1;i<=n;++i)
                if(viz[i]==-1) fprintf(g,"-");
                        else fprintf(g,"+");
        }
void solve()
        {
        int ok=1;
        long x;
        while(ok)
                {
                x=random()%(n+1);
                viz[x]=-viz[x];
                s+=2*viz[x]*a[x];
                if(S==s)
                        {
                        afisare();
                        ok=!ok;
                        break;
                        }
                }
       }
int main()
        {
        read();
        solve();
        return 0;
        }