Pagini recente » Cod sursa (job #1559300) | Cod sursa (job #1856488) | Cod sursa (job #1224358) | Cod sursa (job #1408188) | Cod sursa (job #732752)
Cod sursa(job #732752)
#include <fstream>
#include <cstdlib>
#include <ctime>
#define nmax 50005
using namespace std;
ifstream f("semne.in");
ofstream g("semne.out");
int n, s, cnt, a[nmax];
string rez;
void citeste(){
f >> n >> s;
for(int i=0; i<n; i++) f >> a[i];
}
void rezolva(){
srand(time(NULL));
int ok = 1;
int viz[nmax];
while(ok){
//int nr = rand()%n ;
int nr = n / 2;
rez.clear();
int s2 = 0;
while(cnt != nr){
int x = rand() % n;
if (viz[x] == 0){
viz[x] = 1;
++cnt;
}
}
for(int i=0; i<n; i++){
if (viz[i] == 1) s2+=a[i], rez+='+', viz[i]=0;
else s2-=a[i], rez+='-';
}
if (s2 == s){
g << rez << "\n";
ok = 0;
}
cnt = 0;
}
}
int main(){
citeste();
rezolva();
f.close();
g.close();
return 0;
}