Cod sursa(job #2196627)

Utilizator Lazar_LaurentiuLazar Laurentiu Lazar_Laurentiu Data 19 aprilie 2018 21:14:18
Problema Semne Scor 95
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <random>
#define MAX 50010

using namespace std;
typedef long long ll;

ll n,s,sf,nr;
ll a[MAX];
bool sm[MAX];

int main()
{
    ifstream f ("semne.in");
    ofstream g ("semne.out");
    f>>n>>sf; for(ll i=1;i<=n;i++)f>>a[i],s+=a[i],sm[i]=1;
    default_random_engine g1,g2;
    uniform_int_distribution<int> distribution(1,n);  //??
    while(s!=sf)
      if(s<sf){
        nr=distribution(g1);
        if(sm[nr]==0)s+=2*a[nr];
        sm[nr]=1;
      } else {
        nr=distribution(g2);
        if(sm[nr]==1)s-=2*a[nr];
        sm[nr]=0;
      }
    for(ll i=1;i<=n;i++) if(sm[i]==0)g<<'-'; else g<<'+';
    g<<'\n';
    f.close ();
    g.close ();
    return 0;
}