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;
}