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