Qualcuno che mi da’ una dritta su come risolvere questo problema.
Il codice va in loop infinito nei due while annidati in fondo.
grazie
#include<stdio.h>
#include<stdlib.h>
typedef struct {int inizio; int fine;}Persona;
Persona p[50];
int cmp(void* a, void* b)
{
Persona c=*((Persona*)a);
Persona d=*((Persona*)b);
if(c.inizio==d.inizio)
return 0;
else
{
if(c.inizio>d.inizio)
return 1;
else
return -1;
}
}
int chiInizia()
{
int inizia=0;
int i=0;
int fine=0;
while(p[i].inizio==0)
{
if(p[i].fine>fine)
{
fine=p[i].fine;
inizia=i;
}
i++;
}
return inizia;
}
main()
{
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
int i;
int giorni;
scanf("%d", &giorni);
int n;
scanf("%d", &n);
for(i=0; i<n; i++)
{
scanf("%d", &(p[i].inizio));
scanf("%d", &(p[i].fine));
}
qsort(p, n, sizeof(Persona), cmp);
int max=1;
int attuale=chiInizia();
i=attuale+1;
while((p[attuale].fine)<giorni)
{
while((p[i].inizio)<(p[attuale].fine))
{
i++;
}
attuale=i-1;
max++;
}
printf("%d", max);
}