Cod sursa(job #1542697)

Utilizator Athena99Anghel Anca Athena99 Data 5 decembrie 2015 16:26:41
Problema Semne Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <cstdlib>
#include <fstream>

using namespace std;

ifstream fin("semne.in");
ofstream fout("semne.out");

typedef long long i64;

const int nmax= 50000;

bool u[nmax+1];
int v[nmax+1];

int main(  ) {
    int n;
    i64 s, sum= 0;
    fin>>n>>s;
    for ( int i= 1; i<=n; ++i ) {
        fin>>v[i];
        sum= (i64)sum-v[i];
    }

    while ( sum!=s ) {
        int aux= (rand()%n)+1;
        if ( u[aux]==0 ) {
            sum= (i64)sum+v[aux]*2;
        } else {
            sum= (i64)sum-v[aux]*2;
        }
        u[aux]= 1-u[aux];
    }

    for ( int i= 1; i<=n; ++i ) {
        if ( u[i]==0 ) {
            fout<<"-";
        } else {
            fout<<"+";
        }
    }
    fout<<"\n";

    return 0;
}