Cod sursa(job #2387302)

Utilizator ivan.tudorIvan Tudor ivan.tudor Data 24 martie 2019 14:54:48
Problema Semne Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <iostream>
#include<cstdio>

using namespace std;
const int N=50005;
int v[N];
int n;
long long sumc=0,s;
char sem[N];
void bkt(int p){
  if(sumc==s){
    return;
  }
  for(int i=p;i>=1;i--){
    if(sumc-2*v[i]>=s){
      sem[i]='-';
      sumc-=2*v[i];
      bkt(i-1);
    }
    if(sumc==s)
      return;
    if(sem[i]=='-'){
      sem[i]='+';
      sumc+=2*v[i];
    }
  }
}
int main()
{
  FILE*fin,*fout;
  fin=fopen("semne.in","r");
  fout=fopen("semne.out","w");
  fscanf(fin,"%d%lld",&n,&s);
  for(int i=1;i<=n;i++){
    sem[i]='+';
    fscanf(fin,"%d",&v[i]);
    sumc+=v[i];
  }
  bkt(n);
  fputs(sem+1,fout);
  return 0;
}