Pagini recente » preoji/clasament/9 | Cod sursa (job #2421708) | Cod sursa (job #2468424) | Istoria paginii runda/rar11 | Cod sursa (job #166480)
Cod sursa(job #166480)
#include<stdio.h>
#include<stdlib.h>
#include<iostream.h>
#include<time.h>
#define NMAX 50003
long long n,s,i,var,plus,minus,limA;
struct multime {int semn; long long val;} a[NMAX];
// A - MULTIMEA +
// B - MULTIMEA -
long long mutare(int sign)
{
i=0;
while(a[i].semn!=sign)
i=rand()%n+1;
a[i].semn*=-1;
return a[i].val; }
int main()
{
freopen("semne.in","r",stdin);
freopen("semne.out","w",stdout);
scanf("%lld %lld",&n,&s); srand( time(0) );
for(i=1;i<=n;i++)
{scanf("%lld",&a[i].val); plus+=a[i].val; a[i].semn=1;}
limA=n;
while(plus-minus!=s)
{
if(plus-minus<s) {var=mutare(-1); plus+=var; minus-=var;}
if(plus-minus>s) {var=mutare(1); plus-=var; minus+=var;}
}
for(i=1;i<=n;i++)
if(a[i].semn==1) printf("+");
else printf("-");
printf("\n"); return 0; }