Cod sursa(job #180869)

Utilizator firewizardLucian Dobre firewizard Data 17 aprilie 2008 16:51:14
Problema Semne Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>   
#include <cstdlib>   
#include <ctime>   
#include <bitset>    
using namespace std;    
long n,i,a[50005];   
long long S,sum;   
bitset <50005>v;   
int main(){   
    freopen("semne.in","r",stdin);   
    freopen("semne.out","w",stdout);    
    srand(time(0));    
    scanf("%ld %lld",&n,&S);   
    for (i=1;i<=n;i++){   
    scanf("%ld",&a[i]);   
    sum+=a[i];   
    v[i]=1;   
    }   
    while (sum!=S){   
    i=rand()%(n+1);
    
    if(sum>S&&!v[i])continue;
    if (sum<S&&v[i])continue; 
    v[i]=1-v[i];   
    if (v[i])sum+=a[i]+a[i];   
    else sum-=a[i]+a[i];
    
    }   
    for (i=1;i<=n;i++)   
    if (v[i])printf("+");   
    else printf("-");   
    printf("\n");   
return 0;   
}