# Ois\_threshold (execution killed with signal 9)

**URL:** <https://forum.olinfo.it/t/ois-threshold-execution-killed-with-signal-9/4941>\
**Category:** Aiuto\
**Created:** [26 Dicembre 2017, 9:34pm UTC](https://forum.olinfo.it/t/ois-threshold-execution-killed-with-signal-9/4941 "2017-12-26T21:34:01Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![leo\_gag](https://forum.olinfo.it/user_avatar/forum.olinfo.it/leo_gag/32/446_2.png) [@leo\_gag](https://forum.olinfo.it/u/leo_gag)\
**Post date:** [26 Dicembre 2017, 9:34pm UTC](https://forum.olinfo.it/t/ois-threshold-execution-killed-with-signal-9/4941/1 "2017-12-26T21:34:01Z")

</div>

Ho creato un codice che dovrebbe risolvere il problema, ma ottengo solo 40/100 perché sui testcase 006,011,023,024 e 025 mi dice "Execution killed with signal 9 (could be triggered by violating memory limits). Non mi sembra ci siano problemi di memoria non allocata, perciò non capisco dov’è l’errore. (Posto il codice oscurato per evitare spoiler)

```
#include <stdio.h>
int n,temp,i,j,output;
int G[101];
char S[40000000];
int main() {
    FILE * fr;
    FILE * fw;

    fr = fopen("input.txt","r");
    fw = fopen("output.txt","w");

    fscanf(fr,"%d\n",&n);
    fgets(S,n*4,fr);

    j=0;

    for(i=0;i<n;i++){
        temp=0;
    
        while(S[j]!=' '&&S[j]!='\n'){
            temp*=10;
            temp+=S[j]-48;
            j++;
        }
        j++;

        G[temp]++;
    }

    output=0;

    for(i=100;i>=0;i--){
        if(G[i]){
            output+=G[i];
        }
        fprintf(fw,"%d ",output);
    }

    fclose(fr);
    fclose(fw);

    return 0;
}

```

---

<div class="post-metadata">

**Author:** ![tpoppo](https://forum.olinfo.it/letter_avatar_proxy/v4/letter/t/f4b2a3/32.png) [@tpoppo](https://forum.olinfo.it/u/tpoppo)\
**Post date:** [27 Dicembre 2017, 8:44am UTC](https://forum.olinfo.it/t/ois-threshold-execution-killed-with-signal-9/4941/2 "2017-12-27T08:44:14Z")

</div>

Ciao,  
“Signal 9” significa che stai usando troppa memoria.

Non è necessario salvare input in un array

---

<div class="post-metadata">

**Author:** ![simpatine](https://forum.olinfo.it/user_avatar/forum.olinfo.it/simpatine/32/444_2.png) [@simpatine](https://forum.olinfo.it/u/simpatine)\
**Post date:** [29 Gennaio 2018, 6:52pm UTC](https://forum.olinfo.it/t/ois-threshold-execution-killed-with-signal-9/4941/3 "2018-01-29T18:52:58Z")

</div>

Hai provato a diminuire la dimensione di S? Non tutti i numeri da 1 a 100 hanno 3 cifre, comunque puoi anche non leggere tutto in un unico fgets, se lo fai più di una volta.  
Comunque quell’ if(G[i]) nell’ ultimo ciclo for è proprio da te Leonà.
