Cod sursa(job #3222419)

Utilizator NuSuntRomanIspir Alexandru NuSuntRoman Data 10 aprilie 2024 00:13:57
Problema Semne Scor 25
Compilator cpp-64 Status done
Runda Lista lui wefgef Marime 1.23 kb
#include <bits/stdc++.h>
#define int long long

const int NMAX = 5e4 + 5;

int n, S, sgn[NMAX], a[NMAX];

std :: mt19937 rng(1337);

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

signed main() {
    fin >> n >> S;

    int curr = 0;

    for (int i = 1; i <= n; ++ i) {
        fin >> a[i];

        int t = rng() % 2;

        if (t == 0) {
            sgn[i] = +1;
            curr += a[i];
        }
        else {
            sgn[i] = -1;
            curr -= a[i];
        }
    }

    while (curr != S) {
        if (curr < S) {
            for (int i = 1; i <= n; ++ i) {
                if (sgn[i] == -1) {
                    curr += 2 * a[i];
                    sgn[i] = +1;
                    break;
                }
            }
        }
        else {
            for (int i = 1; i <= n; ++ i) {
                if (sgn[i] == +1) {
                    curr -= 2 * a[i];
                    sgn[i] = -1;
                    break;
                }
            }
        }
    }

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

    return 0;
}