Cod sursa(job #2595251)

Utilizator Ruxandra985Nanu Ruxandra Laura Ruxandra985 Data 7 aprilie 2020 13:56:55
Problema Semne Scor 20
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.18 kb
#include <bits/stdc++.h>

using namespace std;
int v[50010] , sol[50010];
int main()
{
    FILE *fin = fopen ("semne.in","r");
    FILE *fout = fopen ("semne.out","w");
    int n , i;
    long long s , sum;
    /// ar fi chiar amuzant sa mearga asta
    fscanf (fin,"%d%lld",&n,&s);
    for (i = 1 ; i <= n ; i++)
        fscanf (fin,"%d",&v[i]);
    sum = 0;
    for ( i = n ; i ; i-- ){
        if (sum < s){
            sum += v[i];
            sol[i] = 1;
        }
        else {
            sum -= v[i];
            sol[i] = -1;
        }
    }
    if (s == sum){
        for (i = 1 ; i <= n ; i++){
            if (sol[i] == 1)
                fprintf (fout,"+");
            else fprintf (fout,"-");
        }
        return 0;
    }
    sum = 0;
    for ( i = 1 ; i <= n ; i++ ){
        if (sum < s){
            sum += v[i];
            sol[i] = 1;
        }
        else {
            sum -= v[i];
            sol[i] = -1;
        }
    }
    if (s == sum){
        for (i = 1 ; i <= n ; i++){
            if (sol[i] == 1)
                fprintf (fout,"+");
            else fprintf (fout,"-");
        }
        return 0;
    }
    return 0;
}