Pagini recente » Cod sursa (job #1475484) | Cod sursa (job #2446745) | Cod sursa (job #1482443) | Cod sursa (job #1647572) | Cod sursa (job #2523714)
#include <iostream>
#include <algorithm>
#include <fstream>
using namespace std;
ifstream f("semne.in");
ofstream g("semne.out");
long long int n,s,suma=0;
char semne[50005];
struct Point
{
int x,y;
};
Point v[50005];
bool cmpx(Point a,Point b)
{
if(a.x==b.x)
return a.y<b.y;
return a.x<b.x;
}
int main()
{
f>>n>>s;
for(int i=1;i<=n;i++)
{
v[i].y=i;
f>>v[i].x;
suma+=v[i].x;
}
sort(v+1,v+n+1,cmpx);
for(int i=n;i>=1;i--)
{
if(suma-2*v[i].x>=s) {suma-=2*v[i].x; semne[v[i].y]='-';}
else semne[v[i].y]='+';
}
for(int i=1;i<=n;i++)
g<<semne[i];
}