Cod sursa(job #844574)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 29 decembrie 2012 15:24:52
Problema Semne Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include<iostream>
#include<fstream>
#include<time.h>
#include<stdlib.h>
using namespace std;
 
#define NMAX 50001
 
int v[NMAX],semn[NMAX];
 
int main ()
{
    int i,n,sum,s,x;
    ifstream f("semne.in");
    ofstream g("semne.out");
    f>>n>>s;
    sum=0;
    for(i=1;i<=n;i++) {
        f>>v[i];
        if(sum<=s) 
            sum=sum+v[i];
        else {
            semn[i]=1;
            sum=sum-v[i];
        }
    }
    f.close();
    srand(time(NULL));
    while(sum!=s) 
        if(sum<s) {
            x=rand()%(n)+1;
            while(semn[x]==0) 
                x=rand()%(n)+1;
            semn[x]=0;
            sum=sum+2*v[x];
        }
        else {
            x=rand()%(n)+1;
            while(semn[x]==1) 
                x=rand()%(n)+1;
            semn[x]=1;
            sum=sum-2*v[x];
        }
    for(i=1;i<=n;i++)
        if(semn[i]==0)
            g<<'+';
        else g<<'-';
    g<<'\n';
    g.close();
    return 0;
}