# include <stdio.h>
# include <string.h>
typedef struct
{
	char name[80];
	char lastname[80];
	int personid;
}Person;


void clearBuffer()
{
	char ch;
	while((ch=getchar())!='\n');
}

void readPerson(Person *p)
{
	printf("Enter name?\n");
	gets(p->name);
	printf("Enter lastname?\n");
	gets(p->lastname);
	printf("Enter id?\n");
	scanf("%d",&p->personid);
	clearBuffer();
}

void showPerson(Person p)
{
	printf("Details: %s,%s,%4d\n",
		p.name,p.lastname,p.personid);
}


/** Sygrkrinei a,b kai epistrefei 0 an einai idioi,
 *  1, an a>b kai -1 an a<b **/
int comparePersons(Person a,Person b)
{
/** Pappas, Papadopoulos **/

	/** 
	 * Nikos Ioannou, 100
	 * Dimitris Xristou, 101**/
	if(strcmp(a.lastname,b.lastname)>0) return 1;
	else
	if(strcmp(a.lastname,b.lastname)<0) return -1;
	else
	{
		if(strcmp(a.name,b.name)>0) return 1;
		else
		if(strcmp(a.name,b.name)<0) return -1;
		else 
		{
			if(a.personid>b.personid) return 1;
			else
			if(a.personid<b.personid) return -1;
			else
			return 0;
		}
	}
	return 0;
}


int main()
{
	Person people[5];
	int flag;
	int i,j;
	Person pt;
	for(i=0;i<5;i++) 
	{
		do{
		printf("Dose anthropo :%d\n",i);
		readPerson(&people[i]);
		/** Elegxoume me osous exoune mpei idi ston pinaka 
		 * To flag=0 simeni oti o people[i] den yparxei idi
		 * ston pinaka kai flag=1 simainei oti yparxei idi 
		 * **/
		flag=0;
		for(j=0;j<i;j++)
		{
			/** An epistrepsei 0 yparxei idi **/
			if(comparePersons(people[i],people[j])==0)
			{
				flag=1;
				break;
			}
		}
		}while(flag==1);
	}
	/** sort **/
	for(i=0;i<5;i++)
	{
		for(j=0;j<4;j++)
		{
			if(comparePersons(people[j],people[j+1])>0)
			{
				pt=people[j];
				people[j]=people[j+1];
				people[j+1]=pt;
			}
		}
	}
	for(i=0;i<5;i++)
	{
		showPerson(people[i]);
	}
	return 0;
}
