Cod sursa(job #1787187)

Utilizator cordun_cristinaCristina Maria Cordun cordun_cristina Data 24 octombrie 2016 11:54:54
Problema Semne Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.29 kb
/*#include <fstream>
#include <time.h>
#include <vector>
#include <cstdlib>

using namespace std;
ifstream f("semne.in");
ofstream g("semne.out");

const int Nmax = 50005;
int n, s, sum, nr[Nmax];
vector <int> p, m;
char S[Nmax];

void Read()
{
    f>>n>>s;
    for(int i = 1; i <= n; i++)
    {
        f>>nr[i];
        if(sum < s)
        {
            S[i] = '+';
            p.push_back(i);
            sum += nr[i];
        }
        else
        {
            S[i] = '-';
            m.push_back(i);
            sum -= nr[i];
        }
    }
}

void Solve()
{
    int i;
    srand(time(NULL));
    while(sum+=s)
    {
        if(sum<s)
        {
            int ind = rand()%m.size();
            sum += 2*nr[m[ind]];
            S[m[ind]] = '+';
            p.push_back(m[ind]);
            m[ind] = m[m.size()-1];
            m.pop_back();
        }
        else
        {
            int ind = rand()%p.size();
            sum -= 2*nr[p[ind]];
            S[p[ind]] = '-';
            m.push_back(p[ind]);
            p[ind] = p[p.size()-1];
            p.pop_back();
        }
    }
}

void Print()
{
    for(int i = 1; i <= n; i++)
        g<<S[i];
    g<<'\n';
}

int main()
{
    Read();
    Solve();
    Print();
    return 0;
}*/