Mai intai trebuie sa te autentifici.
Cod sursa(job #2052783)
Utilizator | 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);
}
}