Pagini recente » Cod sursa (job #1955511) | Cod sursa (job #2689242) | Cod sursa (job #3194754) | Cod sursa (job #3262358) | Cod sursa (job #1018055)
#include<fstream>
#include<cstdlib>
#define dim 50007
#include<ctime>
using namespace std;
ifstream f("semne.in"); ofstream g("semne.out");
char sol[dim];
long long Ss,S;
int n,pp,mm,t,i,a[dim],p[dim],m[dim];
int main()
{ f>>n>>S;
srand(time(0));
for(i=1;i<=n;i++)
{ f>>a[i];
t=rand()%2;
if(t) p[++pp]=i, Ss+=a[i], sol[i]='+'; else m[++mm]=i, Ss-=a[i], sol[i]='-';
}
while(Ss!=S)
if(Ss<S) {t=rand()%mm+1; p[++pp]=m[t]; m[t]=m[mm--]; sol[p[pp]]='+'; Ss+=2*a[p[pp]];}
else {t=rand()%pp+1; m[++mm]=p[t]; p[t]=p[pp--]; sol[m[mm]]='-'; Ss-=2*a[m[mm]];}
for(i=1;i<=n;i++) g<<sol[i];
return 0;
}