Mai intai trebuie sa te autentifici.

Cod sursa(job #2052783)

Utilizator GrandmasterSoucup Bogdan Grandmaster Data 30 octombrie 2017 23:26:43
Problema Semne Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.83 kb
#include <fstream>
#include <math.h>
#include <vector>
#include <set>
#include <algorithm>
#include <cstring>
//#include <unordered_map>
#include <iomanip>
#include <time.h>
#include <stdio.h>
#include <bitset>
#include <map>
#include <ctime>
#include <stdlib.h>
#define MAX 500000000000
//#include <iostream>
//#include <windows.h>
#include <deque>
//#include "PEZai.h"
//#include <Tlhelp32.h>
using namespace std;
ifstream cin("semne.in");
ofstream cout("semne.out");
//ifstream cin("quadratum.in");
//ofstream cout("quadratum.out");
long long x[50004], n, s, y[50004];
void add_rand(int n)
{
    long long adv = 0;
    long long
    sum = 0, dif = 0;
    for(int i = 0; i < n; i++)
    {
        int t = rand() % 2;
        if(t == 1)
            sum += x[i];
        else
            dif += x[i];
        y[i] = t;
    }
    while(adv <= 100004)
    {
        if(sum - dif != s)
        {
            if(sum > dif)
            {
                int g = rand() % n;
                while(y[g] == 0)
                    g = rand() % n;
                sum -= x[g];
                dif += x[g];
                y[g] = 0;
            }
            else
            {
                int g = rand() % n;
                while(y[g] == 1)
                    g = rand() % n;
                sum += x[g];
                dif -= x[g];
                y[g] = 1;
            }
        }
        else
        {
            for(int i = 0; i < n; i++)
                if(y[i] == 0)
                    cout << "-";
                else
                    cout << "+";
            exit(0);
        }
        adv++;
    }
}
int main()
{
    cin >> n >> s;
    for(int i = 0; i < n; i++)
        cin >> x[i];
    for(int i = 0; i < 10; i++){
        srand(time(NULL));
        add_rand(n);
    }
}