Ciao,
sto tentando di risolvere il problema “Messaggi” ma, nonostante non abbia ancora scritto la funzione per eliminare i “doppioni”, già su 5 testcase il correttore da Execution timed out.
Qualcuno mi sa dire come rendrere più rapida l’esecuzione del mio codice?
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int nRighe;
int nRichieste;
char mittenti[100000][100];
char destinatari[100000][100];
char utenti[100000][100];
short tipoRichiesta[100000];
char attuale[100000][100];
int att;
void eliminaDoppioni()
{
}
main()
{
scanf("%d%d", &nRighe, &nRichieste);
int i,j;
for(i=0; i<nRighe; i++)
{
scanf("%s%s", mittenti[i], destinatari[i]);
}
char temp[20];
for(i=0; i<nRichieste; i++)
{
scanf("%s", utenti[i]);
scanf("%s", temp);
if(!strcmp(temp, "INVIATI\0"))
tipoRichiesta[i]=0;
else
tipoRichiesta[i]=1;
}
for(j=0; j<nRichieste; j++)
{
att=0;
if(tipoRichiesta[j]==0)
for(i=0; i<nRighe; i++)
{
if(!strcmp(mittenti[i], utenti[j]))
{
strcpy(attuale[att], destinatari[i]);
att++;
}
}
else
for(i=0; i<nRighe; i++)
{
if(!strcmp(destinatari[i], utenti[j]))
{
strcpy(attuale[att], mittenti[i]);
att++;
}
}
eliminaDoppioni();
printf("%d ", att);
for(i=0; i<att; i++)
printf("%s ", attuale[i]);
printf("\n");
}
}