Pagini recente » Cod sursa (job #2779511) | Cod sursa (job #437642) | Cod sursa (job #1420911) | Cod sursa (job #1971896) | Cod sursa (job #1787187)
/*#include <fstream>
#include <time.h>
#include <vector>
#include <cstdlib>
using namespace std;
ifstream f("semne.in");
ofstream g("semne.out");
const int Nmax = 50005;
int n, s, sum, nr[Nmax];
vector <int> p, m;
char S[Nmax];
void Read()
{
f>>n>>s;
for(int i = 1; i <= n; i++)
{
f>>nr[i];
if(sum < s)
{
S[i] = '+';
p.push_back(i);
sum += nr[i];
}
else
{
S[i] = '-';
m.push_back(i);
sum -= nr[i];
}
}
}
void Solve()
{
int i;
srand(time(NULL));
while(sum+=s)
{
if(sum<s)
{
int ind = rand()%m.size();
sum += 2*nr[m[ind]];
S[m[ind]] = '+';
p.push_back(m[ind]);
m[ind] = m[m.size()-1];
m.pop_back();
}
else
{
int ind = rand()%p.size();
sum -= 2*nr[p[ind]];
S[p[ind]] = '-';
m.push_back(p[ind]);
p[ind] = p[p.size()-1];
p.pop_back();
}
}
}
void Print()
{
for(int i = 1; i <= n; i++)
g<<S[i];
g<<'\n';
}
int main()
{
Read();
Solve();
Print();
return 0;
}*/