Cod sursa(job #1464140)

Utilizator fanache99Constantin-Buliga Stefan fanache99 Data 22 iulie 2015 14:12:48
Problema Semne Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include<cstdio>
#include<ctime>
#include<cstdlib>
using namespace std;
int v[50010],sg[50010];
int main(){
    freopen("semne.in","r",stdin);
    freopen("semne.out","w",stdout);
    int n,i,p,x;
    long long s,sum=0;
    scanf("%d%lld",&n,&s);
    for(i=1;i<=n;i++){
        scanf("%d",&v[i]);
        sg[i]=1;
        sum+=v[i];
    }
    srand(time(0));
    while(sum!=s){
        x=rand()%n+1;
        if(sum>s)
            p=1;
        else
            p=-1;
        while(sg[x]!=p)
            x=rand()%n+1;
        sg[x]*=-1;
        if(p==1)
            sum-=2*v[x];
        else
            sum+=2*v[x];
    }
    for(i=1;i<=n;i++)
        if(sg[i]==1)
            printf("+");
        else
            printf("-");
    return 0;
}