Mai intai trebuie sa te autentifici.
Cod sursa(job #1628183)
Utilizator | Data | 3 martie 2016 21:41:34 | |
---|---|---|---|
Problema | Semne | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.88 kb |
#include <fstream>
#include <stdlib.h>
#include <bitset>
using namespace std;
#define Nmax 50002
ifstream in("semne.in");
ofstream out("semne.out");
int N, v[Nmax];
bitset<Nmax> s;
long long S, Now;
void bkt ( int poz ){
if ( Now != S ){
int i = poz;
while ( i > 0 ){
s[i] = 1;
Now -= 2 * v[i];
if ( Now >= S )
bkt ( i - 1 );
s[i] = 0;
Now += 2 * v[i];
i--;
}
}
else {
for(int i = 1; i <= N; i++) {
if(s[i])
out << '-';
else
out << '+';
}
exit(EXIT_SUCCESS);
}
}
int main(){
in >> N >> S;
for ( int i = 1; i <= N; ++i ){
in >> v[i];
Now += v[i];
}
bkt ( N );
End:
return 0;
}