Pagini recente » Cod sursa (job #2634402) | Cod sursa (job #3040257) | Cod sursa (job #974220) | Cod sursa (job #2406983) | Cod sursa (job #735392)
Cod sursa(job #735392)
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;
int main() {
ifstream f("semne.in");
ofstream g("semne.out");
//srand(time(0));
int n, v[50005], i, sbun, s=0;
char semn[50005];
f>>n>>sbun;
for(i=1; i<=n; i++) {
f>>v[i];
s+=v[i];
semn[i]='+';
}
while(s!=sbun) {
if(s>sbun) { //trebuie sa scad un numar -> pun "-" la unu cu "+"
i=rand()%n +1;
while(semn[i]=='-') i=rand()%n +1;
//am un v[i] cu "+";
semn[i]='-';
s-=2*v[i];
}
if(s<sbun) { //trebuie sa adun un numar -> pun "+" la unu cu "-"
i=rand()%n +1;
while(semn[i]=='+') i=rand()%n +1;
//am un v[i] cu "-";
semn[i]='+';
s+=2*v[i];
}
}
for(i=1; i<=n; i++) g<<semn[i];
g<<"\n";
f.close();
g.close();
return 0;
}