Pagini recente » Cod sursa (job #3204277) | Cod sursa (job #579738) | Cod sursa (job #573249) | Cod sursa (job #2032869) | Cod sursa (job #724175)
Cod sursa(job #724175)
#include<stdio.h>
FILE*f=fopen("semne.in","r");
FILE*g=fopen("semne.out","w");
int n,v[50002];
long long s,sol;
char w[50002];
long long poz(long long a)
{
if(a<0)
return -a;
return a;
}
int main()
{
fscanf(f,"%d%lld",&n,&s);
for(int i=1;i<=n;++i)
fscanf(f,"%d",&v[i]);
sol;
for(int i=1;i<=n;++i)
if(sol<s)
{
sol+=v[i];
w[i]=1;
}
else
{
sol-=v[i];
}
while(sol!=s)
{
int ok=1;
for(int i=1;poz(s-sol)>2*v[i]||ok;++i)
{
if(sol<s&&!w[i])
{
sol+=2*v[i];
w[i]=1;
ok=0;
}
else if(sol>s&&w[i])
{
sol-=2*v[i];
w[i]=0;
ok=0;
}
if(sol==s)
break;
}
}
for(int i=1;i<=n;++i)
if(w[i])
fprintf(g,"+");
else
fprintf(g,"-");
fclose(f);
fclose(g);
return 0;
}