Cod sursa(job #1044807)

Utilizator chiriacandrei25Chiriac Andrei chiriacandrei25 Data 30 noiembrie 2013 14:15:25
Problema Semne Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
#include <ctime>
#include <cstdlib>

using namespace std;

int N,v[50005];
long long S,suma;
char semn[50005];

inline void Read()
{
    int i;
    ifstream fin("semne.in");
    fin>>N>>S;
    for(i=1;i<=N;++i)
    {
        fin>>v[i];
        semn[i]='+';
        suma+=v[i];
    }
    fin.close();
}

inline void Solve()
{
    int gata=0,poz,i;
    srand(time(0));
    while(!gata)
        if(suma<S)
        {
            for(poz=1;semn[poz]=='+';poz=rand()%N +1);
            suma+=2*v[poz];
            semn[poz]='+';
        }
        else
            if(suma>S)
            {
                for(poz=1;semn[poz]=='-';poz=rand()%N +1);
                suma-=2*v[poz];
                semn[poz]='-';
            }
            else
                gata=1;

    ofstream fout("semne.out");
    for(i=1;i<=N;i++)
        fout<<semn[i];
    fout<<"\n";
    fout.close();
}

int main()
{
    Read();
    Solve();
    return 0;
}