semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
void main()
 {int n;
  scanf ("%d",&n);
  struct patient
   { int num[10];int age;}
   patient[100];
  struct a
   { int num[10];int age;}
   a[100];
  int i,j=0;int t=0;
  for (i=0;i<n;i++)
  scanf ("%s %d",patient[i].num,&patient[i].age);
   for (i=0;i<n;i++)
     { if (patient[i].age>=60) {strcpy(a[j].num,patient[i].num);
     a[j].age=patient[i].age;j++;}}
   int k=j; int m=a[0].age;
  i=0;
  while (i<k) 
  {
   {for (j=0;j<k;j++)
   if (m<a[j].age) {m=a[j].age; t=j;}}
    printf("%s\n",a[t].num);a[t].age=0;m=0;i++;}
  for (i=0;i<n;i++)
  {if(patient[i].age<60) printf("%s\n",patient[i].num);}
 }
int main()
{
    int n,m=0,t;
    scanf("%d",&n);
    char a[n][100],s[n][100],r[100];
    int b[n],c[n];
    for(int i=0;i<n;i++)
    scanf("%s %d",a[i],&b[i]);
    for(int j=0;j<n;j++)
    {
            if(b[j]>=60)
            {
                        c[m]=b[j],strcpy(s[m],a[j]);
                        if(m!=0)
                        {
                        for(int k=m;k>0;k=k-1)
                        {
                                if(c[k]>c[k-1])
                                {
                                             strcpy(r,s[k]),strcpy(s[k],s[k-1]),strcpy(s[k-1],r);
                                             t=c[k],c[k]=c[k-1],c[k-1]=t;
                                }
                        }
                        }
                        m++;
            }
    }
    if(m!=0)
    {
    for(int i=0;i<m;i++)
    printf("%s\n",s[i]);
    }
    for(int j=0;j<n;j++)
    {
            if(b[j]<60)
            printf("%s\n",a[j]);
    }
    getchar();
    getchar();
}
struct queue
{
	char ID[11];
	int age;
	struct number * next;
};
int r=1;
struct queue * AppendNewNode(int n);

void main()
{
    int n,i,j,a[100]={0},temp;
	char temp_2[11]={""};
	struct queue *head, *p,*pf,*temp_1;
	
	scanf("%ld",&n);

	head=AppendNewNode(n);
    p=head;
  while(p!=NULL)
	{
		scanf("%s %d\n",&p->ID,&p->age);
		p=p->next;
	}
  p=head;
 // p=p->next;
   //  printf("%d\n",p->age);
for(i=0;i<n;i++)
	{
		a[i]=p->age;
		p=p->next;
	}   
     //printf("%d\n",a[1]);
 p=head;
 pf=head;
		for(i=0;i<n;i++)
		{
			for(j=0;j<n-1-i;j++)
			{
				if(a[j+1]>=60&&a[j]<a[j+1]) {
					temp=a[j];a[j]=a[j+1];a[j+1]=temp;
				pf=p->next;temp=p->age;p->age=pf->age;pf->age=temp;strcpy(temp_2,p->ID);strcpy(p->ID,pf->ID);strcpy(pf->ID,temp_2);p=p->next;
				}
				else {p=p->next;}
			}
		   p=head;
		}

	p=head;
   //  printf("%d\n",p->age);
   
	while(p!=NULL)
	{
		printf("%s\n",p->ID);
		p=p->next;
		
	}

}

struct queue * AppendNewNode(int n)
{

	struct queue *head=NULL, *newNode, *thisNode;
	do{
		newNode=(struct number *) malloc(sizeof(struct queue));
		if(r==1)
		{
			head=newNode;
			thisNode=head;
		}
		else 
			thisNode->next=newNode;
		if(r<=n)
		{
			thisNode=newNode;
			r++;
		}
	}while(r<=n);
	thisNode->next=NULL;
	return(head);
}
struct p{
	char id[10];
	int age;
};

void bubble(struct p a[100],int n)
{
	int i,j;
	struct p temp;
	for(i=0;i<n-1;i++)
	{
		for(j=0;j<n-1;j++)
		{
			if(a[j].age>=60)
			{
				if(a[j+1].age>a[j].age)
				{
					temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
			else
			{
				if(a[j+1].age>=60)
				{
					temp=a[j];
					a[j]=a[j+1];
					a[j+1]=temp;
				}
			}
		}
	}
}
int main()
{
	int n,i;
	struct p a[100];
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s%d",a[i].id,&a[i].age);
	}
	bubble(a,n);
	for(i=0;i<n;i++)
	{
		printf("%s\n",a[i].id);
	}
	return 0;
}
struct student
{
	char str[10];
	int a;

	struct student *next;
};

struct student *creat(int n)
{
	int i=0;
	struct student *head;
	struct student *p1,*p2;

	p1=p2=(struct student *)malloc(LEN);
	scanf("%s %d",&p1->str,&p1->a);
    head=NULL;
	while(i<n-1)
	{
		i=i+1;
		if(i==1) head=p1;
		else p2->next=p1;
		p2=p1;
		p1=(struct student *)malloc(LEN);
		scanf("%s %d",&p1->str,&p1->a);
	}
	p2->next=p1;
	p2=(struct student *)malloc(LEN);
	p2=p1;
	p2->next=NULL;

	return(head);
}
void main()
{
	int n,i,j;
	struct student *head,*p1,*p2,*p3,*p4,*p5,*p6;
	scanf("%d",&n);
	head=creat(n);

	char c[10];
	int t;


  for(i=0;i<n;i++)
  {
	  p1=head;
	  p2=p1->next;
     
	for(j=0;j<n-1-i;j++)
	{
		 if(p2->a>59 && p2->a>p1->a)

         
			 {
				strcpy(c,p2->str);
				strcpy(p2->str,p1->str);
				strcpy(p1->str,c);
				t=p1->a;
				p1->a=p2->a;
				p2->a=t;
				 }
			 
			 
			 p1=p1->next;
			 p2=p2->next;
		 
	 }

  }
  p5=head;

  for(i=0;i<n;i++)
  {
	 
	  { printf("%s\n",p5->str);}
	  p5=p5->next;
  }
}
int main(){
	int i,n,j;
	char s[100][11],z[11];
	int g[100],c;
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s %d",s[i],&g[i]);
	}
	for(i=0;i<n;i++){
		for(j=1;j<n-i;j++){
			if(g[j-1]<g[j]&&g[j]>=60){
				strcpy(z,s[j-1]);strcpy(s[j-1],s[j]);strcpy(s[j],z);
				c=g[j-1];g[j-1]=g[j];g[j]=c;
			}
	}
	}
	for(i=0;i<n-1;i++){
		printf("%s\n",s[i]);
	}
	if(i==n-1){
		printf("%s",s[i]);
	}
	return 0;
}
void main()
{
  int n,i,j=0,k=0,l;
  scanf("%d",&n);
 struct p
  {
    char id[10];
    int age;
   }a[n],b[n],c[n],d;
 for(i=0;i<n;i++)
  { 
    scanf("%s %d",&a[i].id,&a[i].age);
    if(a[i].age>=60) {b[j]=a[i];j++;}
    else {c[k]=a[i];k++;}
   }
 for(i=0;i<j-1;i++)
  for(l=0;l<j-1-i;l++)
   if(b[l].age<b[l+1].age) {d=b[l];b[l]=b[l+1];b[l+1]=d;}
  for(i=0;i<j;i++)
  printf("%s\n",b[i].id);
   for(i=0;i<k;i++)
  printf("%s\n",c[i].id);
}
typedef struct 
{
	char id[11];
	int age;
}MAN;

void sort(MAN* array, int nSize)
{
  int i,j;
  for(i = 0; i < nSize ; i++)
  {
	  for(j = nSize - 1; j > i; j--)
	  {
		  if( array[j].age >= 60 && array[j].age > array[j-1].age)
		  {
			  MAN temp = array[j];
			  array[j]= array[j-1];
			  array[j-1] = temp;
		  }
	  }
  }
}
int main()
{
   int i, n;
   MAN * array = 0;
   double ava, maxgap = 0;
 
   scanf("%d", &n);
   array = (MAN*)malloc(n * sizeof(MAN));
   for(i = 0; i < n ; i++)
   {
	   scanf("%s %d", array[i].id, &(array[i].age));
   }
   
   sort(array, n);
   for(i = 0; i < n; i++)
   {
	  printf("%s\n",array[i].id);
   }
 
   free(array);
   return 0;
}
int main() {
/*------------??------------*/

//?????
	int m,n;
//	float f,f1;
//	double d,d1;

//????
	int a[101],b[101];
//	int a[101][2000];

//?????
//	char c[6000];
	char c[101][11],d[101][11];
//	int len;

//????
//	int r;
//	float r;
//	double r;
//	int r[501];
//	int r[200][20];
//	char r[5010];
//	char r[1010][51];

//????
	int i,j,k;

//????
	int ni,nj,nk;
//	double di,dj,dk;
//	float fi,fj,fk;
	char ci[11],cj[11],ck[11];

/*
?? - ????   
 
?? 
???????????????????????????????????? 
1. ??>=60?????????????? 
2. ????????????????????????????????? 
3. ??????<60?????????????? 

 
???? 
?1????????100????????????? 
??????????????????????????
?????????10?????????ID??????ID?????????????????? 

 
???? 
?????????????????ID 
 
???? 
5
021075 40
004003 15
010158 67
021033 75
102012 30

 
???? 
021033
010158
021075
004003
102012

 
 

*/

/*------------??/??------------*/
//	scanf("% ",& );
//	len=strlen(c);

	scanf("%d",&n);
	for(i=1;i<=n;i++) {
		scanf("%s",c[i]);
		strcpy(d[i],c[i]);
		scanf("%d",&a[i]);
		b[i]=a[i];
	}
/*------------??------------*/

//	for(i=1;i<=n;i++) {
//	}
	for(i=1;i<=n-1;i++) {
		for(j=1;j<=n-i;j++) {
			if(a[j]<a[j+1]) {
				ni=a[j+1];
				a[j+1]=a[j];
				a[j]=ni;
				strcpy(ci,c[j+1]);
				strcpy(c[j+1],c[j]);
				strcpy(c[j],ci);
			}
		}
	}

/*------------??------------*/
//	printf("% \n", );
//	printf(" \n");
	for(i=1;i<=n;i++) {
		if(a[i]>=60) {
			printf("%s\n",c[i]);
		}
	}
	for(i=1;i<=n;i++) {
		if(b[i]<60) {
			printf("%s\n",d[i]);
		}
	}

/*------------??------------*/
	return 0;
}
struct ill
{
 char id[11];
 int age;
 struct ill*next;
};
struct ill*creat(int n)
{struct ill*head,*p1,*p2;
 int i;
 head=NULL;
 for(i=0;i<n;i++)
 {p1=(struct ill*)malloc(sizeof(struct ill));
  scanf("%s %d",p1->id,&p1->age);
  if(i==0)head=p1;
  else p2->next=p1;
  p2=p1;
 }
 p2->next=NULL;
 return(head);
}
struct ill* arrang(struct ill*head)
{int t,tt;
 char s[11],ss[11];
 struct ill*p,*q,*m,*h;
 for(p=head;p!=NULL;p=p->next)
 {
	 if(p->age>=60)
	 {
      for(m=p,q=p->next;q!=NULL;q=q->next)
      if(q->age > m->age && m->age>=60 ) m=q;
	  {t=tt=p->age; strcpy(s,p->id); strcpy(ss,p->id);
	   for(h=p->next;h!=m->next;h=h->next)
	   {tt=h->age; strcpy(ss,h->id); 
	    h->age=t; strcpy(h->id,s); 
        t=tt; strcpy(s,ss);
	   }
      p->age=t; strcpy(p->id,s); 
	  }
	 }
 }
 return(head);
}
void main()
{int n;
 struct ill*head,*h;
 scanf("%d",&n);
 head=creat(n);
 head=arrang(head);
 for(h=head;h!=NULL;h=h->next)
	 if(h->age>=60)  printf("%s\n",h->id);
 for(h=head;h!=NULL;h=h->next)
	 if(h->age<60)  printf("%s\n",h->id);
}
struct person{
	char str[10];
	int age;
}per[100],per1[100],per2[100];

int main(int argc, char* argv[])
{
	int n,i,j=0,k=0,x=0,t;
	char e[10];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s %d",per[i].str,&per[i].age);
		if(per[i].age>=60){
			strcpy(per1[j].str,per[i].str);
			per1[j].age=per[i].age;
			j++;
		}
		else{
			strcpy(per2[k].str,per[i].str);
			per2[k].age=per[i].age;
			k++;
		}
	}
	for(x=0;x<j;x++){
		for(i=0;i<j-x;i++){
			if(per1[i].age<per1[i+1].age){
				strcpy(e,per1[i].str);
				strcpy(per1[i].str,per1[i+1].str);
				strcpy(per1[i+1].str,e);
				t=per1[i].age;
				per1[i].age=per1[i+1].age;
				per1[i+1].age=t;
			}
		}
	}
	for(i=0;i<j;i++){
		printf("%s\n",per1[i].str);
	}
	for(i=0;i<k;i++){
		printf("%s\n",per2[i].str);
	}

	return 0;
}
int main()
{
	int n,i,age[MAX+10],num[MAX+10];
	char id[MAX+10][ID_DIGITS+1]={0};
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s%d",id[i],&age[i]);
		num[i]=i;
	}
	int flag,tempnum,tempage,j;
	char tempid[ID_DIGITS+1];
	for(i=0;i<n-1;i++){
		for(j=n-1;j>i;j--){
			flag=0;
			if(age[j]>=60&&age[j-1]<60)flag=1;
			else if(age[j]>=60&&age[j-1]>=60){
				if(age[j]>age[j-1])flag=1;
				else if(age[j]==age[j-1]){
					if(num[j]<num[j-1])flag=1;
				}
			}
			else if(age[j]<60&&age[j-1]<60){
				if(num[j]<num[j-1])flag=1;
			}
			if(flag){
				tempnum=num[j];
				num[j]=num[j-1];
				num[j-1]=tempnum;
				tempage=age[j];
				age[j]=age[j-1];
				age[j-1]=tempage;
				strcpy(tempid,id[j]);
				strcpy(id[j],id[j-1]);
				strcpy(id[j-1],tempid);
			}
		}
	}
	for(i=0;i<n;i++){
		printf("%s\n",id[i]);
	}
	return 0;
}
int main(int argc, char* argv[])
{
	struct patient{
		char ID[10];
		int age;
	}pat[100],old[100];
	int n,i,j,k=0,a;
	char b[10];
	scanf("%d",&n);
	for(i=0;i<n;i++){
		scanf("%s%d",pat[i].ID,&pat[i].age);
		if(pat[i].age>=60){
			strcpy(old[k].ID,pat[i].ID);
			old[k].age=pat[i].age;
			k++;
		}
	}
	for(i=0;i<k-1;i++){
		for(j=0;j<k-1-i;j++){
			if(old[j].age<old[j+1].age){
				a=old[j].age;
				old[j].age=old[j+1].age;
				old[j+1].age=a;
				strcpy(b,old[j].ID);
				strcpy(old[j].ID,old[j+1].ID);
				strcpy(old[j+1].ID,b);
			}
		}
	}
	for(i=0;i<k;i++)
		printf("%s\n",old[i].ID);
	for(i=0;i<n;i++){
		if(pat[i].age<60){
			printf("%s\n",pat[i].ID);
		}
	}
	return 0;
}
int main()
{
	int n,i,pass;
	struct patient
	{
		char id[L];
		int age;
	}men[M],temp;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%s%d",men[i].id,&men[i].age);
	for(pass=1;pass<n;pass++)
	{
		for(i=n-1;i>pass-1;i--)
		{
			if(men[i].age>=60&&men[i].age>men[i-1].age)
			{
				temp=men[i];
				men[i]=men[i-1];
				men[i-1]=temp;
			}
		}
	}
	for(i=0;i<n;i++)
	{
		printf("%s\n",men[i].id);
	}
	return 0;
}
struct sick
{char name[10];
int age;
};
int main()
{   
	int n,i,count=0,j;
	struct sick s[100],a[100],t;
	char b[3];
	gets(b);
	n=atoi(b);
	for(i=0;i<n;i++)
		scanf("%s %d",s[i].name,&s[i].age);
	if(n==1)
		printf("%s",s[0].name);
	else
	{for(i=0;i<n;i++)
		if(s[i].age>=60)
		{a[count]=s[i];
		count++;
		}
		for(i=0;i<count-1;i++)
			for(j=0;j<count-1-i;j++)
				if(a[j].age <a[j+1].age )
				{t=a[j];a[j]=a[j+1];a[j+1]=t;}
	for(i=0;i<count;i++)
		printf("%s\n",a[i].name);
	for(i=0;i<n;i++)
		if(s[i].age<60)
			printf("%s\n",s[i].name);
	}
		return 0;
}
struct patient
{
	char name[10];
	int age;
}p[100],e,old[100],young[100];

int main()
{
	int n,i,j=0,k=0,o=-1,y=-1;
	scanf("%d",&n);
	struct patient p[100],old[100],young[100];
	for(i=0;i<n;i++){
		scanf("%s %d",p[i].name,&p[i].age);
		if((p[i].age)>=60){
			o++;
			old[j]=p[i];
			j++;
			
		}else{
			y++;
			young[k]=p[i];
			k++;
			
		}
	}//?????
	for(i=120;i>=60;i--){
		for(j=0;j<o+1;j++){
			if(old[j].age==i){
				printf("%s\n",old[j].name);
			}
		}	
	}//?????????? ? ??????????????
	for(i=0;i<y+1;i++){
		printf("%s\n",young[i].name);
	}
	return 0;
}
struct patient
{
	char id[10];
	int age;
	struct patient *next;
	struct patient *pre;
};
void main()
{
	void f(struct patient **head);
	struct patient *head,*p1,*p2;
	int n,i;
	scanf("%d",&n);
	p1=(struct patient *)malloc(sizeof(struct patient));
	p2=p1;head=p1;p1->pre=NULL;
	scanf("%s %d",p1->id,&p1->age);
	for(i=0;i<n-1;i++)
	{
		p1=(struct patient *)malloc(sizeof(struct patient));
		p2->next=p1;p1->pre=p2;p2=p1;
		scanf("%s %d",p1->id,&p1->age);
	}
	p2->next=NULL;
	f(&head);
	for(p1=head;p1!=NULL;p1=p1->next)printf("%s\n",p1->id);
}
void f(struct patient **head)
{
	struct patient *p1,*p2,*p;
	for(p1=(*head)->next;p1!=NULL;p1=p1->next)
		if(p1->age>=60)
		{
			p=p1->next;
			p1->pre->next=p1->next;
			if(p1->next!=NULL)p1->next->pre=p1->pre;
			for(p2=*head;p2->next!=NULL;p2=p2->next)
				if(p1->age>p2->age)
				{
					if(p2->pre!=NULL)p2->pre->next=p1;else *head=p1;
					p1->pre=p2->pre;p2->pre=p1;p1->next=p2;
					break;
				}
			if(p2->next==NULL)
			{
				if(p1->age>p2->age)
				{
					if(p2->pre!=NULL)p2->pre->next=p1;else *head=p1;
					p1->pre=p2->pre;p2->pre=p1;p1->next=p2;
				}
				else {p2->next=p1;p1->pre=p2;p1->next=NULL;}
			}
			if(p!=NULL) p1=p->pre;
			else break;
		}
}
void main()
{
	int n,i,j,k;
	struct patient
	{
		char id[10];
		int age;
	}pa[1000],t;
	
 
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{ 
       	
	
		scanf("%s %d",pa[i].id,&pa[i].age);

				
				

	}
	
  
	for(i=0;i<n;i++)
	{ 
	     
		for(j=n-1;j>=0;j--)
					

if(pa[j].age>pa[j-1].age&&pa[j].age>=60)
					

{
	
t=pa[j];
pa[j]=pa[j-1];
pa[j-1]=t;

}

}	
	for(i=0;i<n;i++)
	{
		if(pa[i].age>=60)
		{
			printf("%s\n",pa[i].id);
		}
	}
	for(i=0;i<n;i++)
	{
		if(pa[i].age<60)
		{
			printf("%s\n",pa[i].id);
		}
	}
}
int main()
{ struct peo
  { char num[10];
    int old;
    struct peo *next;
   };
  struct peo *p,*p1,*p2,*p3,*head1,*head2,*head3;
  int n,i,j,k;
  p=p1=p2=p3=head1=head2=head3=(struct peo *)malloc

(sizeof(struct peo));
  scanf("%d\n",&n);
  for (i=1;i<=n;i++)
   { scanf("%s%d",&p1->num,&p1->old);
     if (i==1) head1=p1;
     else p2->next=p1;
     p2=p1;
     p1=(struct peo *)malloc(sizeof(struct peo));
    }
  for (i=1;i<=n;i++)
  { p1=head1;p2=head1;
    for (j=1;j<=(n+1-i);j++)
     {if (p1->old>p2->old&&p1->old>=60) {p2=p1;}
      p1=p1->next;}
    if (i==1) head2=p2;
    else p->next=p2;
    p=p2;
    p1=head1;p3=head1;
    for (j=1;j<=(n-i+1);j++)
     {if (p1->num==p2->num) {if (j==1) head1=p1->next;
                             else p3->next=p1->next;}
      p3=p1;p1=p1->next;
      }
   }
 p=head2;
 for (i=1;i<=n;i++)
  {printf("%s\n",p->num);p=p->next;}
 
}
typedef struct
{
    char ID[10];
    int age;
}patient;

patient pat[100];

int cmp(const void*, const void*);

int main()
{
    int n;
    int i;
    scanf("%d",&n);
    for (i=0;i<n;i++)
    {
        scanf("%s",pat[i].ID);
        scanf("%d",&pat[i].age);
    }

    qsort(pat,n,sizeof(patient),cmp);

    for (i=0;i<n;i++)
    {
        printf("%s\n",pat[i].ID);
    }
    return 0;
}

int cmp(const void *_p1, const void *_p2)
{
    patient *p1 = (patient*)_p1;
    patient *p2 = (patient*)_p2;
    if (p1->age>=60 && p1->age<60)
        return -1;
    else if (p1->age<60 && p2->age >= 60)
        return 1;
    else if (p1->age>=60 && p2->age >= 60)
        return p2->age - p1->age;
    else
        return 0;
}
int main()
{
	int n,i,m,j,k=0,a,b,c,winnum=0,win=2,year;
	char old[150][100]={0},id[100][100]={0},id0[100]={0},huiche[100]={0};
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s%d",&id0,&year);
		if(year>=60)
		{
			if(old[year][0]==0)
			{
				strcpy(old[year],id0);
			}
			else
			{
				huiche[0]=13;
				huiche[1]=0;
				strcat(old[year],huiche);
				strcat(old[year],id0);
			}
		}
		else
		{
			strcpy(id[i],id0);
		}
	}
	for(i=149;i>=0;i--)
	{
		if(old[i][0]!=0)
		{
			printf("%s\n",old[i]);
		}
	}
	for(i=0;i<n;i++)
	{
		if(id[i]!=0)
		{
			printf("%s\n",id[i]);
		}
	}
	return 0;
}
struct ill
{
    char id[100];
	int age;
	struct ill *next;
};
void main()
{
	struct ill *creat(int x);
	struct ill *p,*head;
	char *w[1000];
	char *temp1;
	int n,i,j=0,k,temp;
	int *q;
	scanf("%d",&n);
    p=creat(n);
	head=p;
	q=(int *)malloc(n*sizeof(int));
	for(i=0;i<n;i++)
	{
		if((*p).age>=60) {*(q+j)=(*p).age;*(w+j)=(*p).id;j++;}
		p=(*p).next;
	}
	k=j;
loop:for(i=0;i<j-1;i++)
	{
		if(*(q+i)<*(q+i+1))
		{
			temp=*(q+i);*(q+i)=*(q+i+1);*(q+i+1)=temp;
			temp1=*(w+i);*(w+i)=*(w+i+1);*(w+i+1)=temp1;
		}
	}
	for(i=0;i<j-1;i++)
	{
		if(*(q+i)<*(q+i+1)) goto loop;
	}
	for(i=0;i<j;i++)
	{printf("%s\n",*(w+i));}
	p=head;
	for(i=0;i<n;i++)
	{
		if((*p).age>=60) goto lop;
		else
		{printf("%s\n",(*p).id);}
lop:p=(*p).next;
	}



}
struct ill *creat(int x)
{
	struct ill *head,*p1,*p2;
	int i;
	p1=(struct ill *)malloc(sizeof(struct ill));
	scanf("%s %d",(*p1).id,&(*p1).age);
	p2=p1;
	head=p1;
	for(i=0;i<x;i++)
	{
	p1=(struct ill *)malloc(sizeof(struct ill));
	scanf("%s %d",(*p1).id,&(*p1).age);
	(*p2).next=p1;
	p2=p1;
	}
    (*p2).next=NULL;
	return(head);
}
void main()
{
	struct patient
	{ char ID[10];
	  int age;
	}pa[100];
	int n,i,t,j,k; 
	char m[10],str[100][100];
	int a[100],b[100]={0};
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		scanf("%s %d",&pa[i].ID,&pa[i].age);
		a[i]=pa[i].age;
		strcpy(str[i],pa[i].ID);
	}
	for(i=0,j=0;i<n;i++,j++)
	{
		if(a[i]>=60)
		 b[j]=a[i];
		
	}
    
	for(i=0;i<n-1;i++)
	{
	
			for(j=0;j<n-1-i;j++)
			{
				
					if(b[j+1]>b[j])
					{
						t=b[j];
                        strcpy(m,pa[j].ID);
					    b[j]=b[j+1];
					    strcpy(	pa[j].ID,pa[j+1].ID);
					    b[j+1]=t;
						strcpy(pa[j+1].ID,m);
					}
			
			}
		
	}
			
	

	for(i=0;i<n;i++)
	{
		
		if(b[i]!=0)
			printf("%s\n",pa[i].ID);
	}
	for(i=0;i<n;i++)
	{
			if(a[i]<60)
			printf("%s\n",str[i]);
	}
}
int main(){
	int n, m=0, sz[100], i, j, sz2[100], e;
	char zf[100][20], f[20], zf2[100][20];
	scanf("%d", &n);
	for(i=0;i<n;i++){
		scanf("%s", zf[i]);
		scanf("%d", &sz[i]);
	}
	for(i=0;i<n;i++){
		if(sz[i]>=60){
			n--;
			strcpy(zf2[m],zf[i]);
			sz2[m]=sz[i];
			m++;
			for(j=i;j<=n;j++){
				strcpy(zf[j],zf[j+1]);
				sz[j]=sz[j+1];
			}
			i--;
		}
	}
	for(j=1;j<=m;j++){
		for(i=0;i<m-j;i++){
			if(sz2[i]<sz2[i+1]){
				e=sz2[i];
				sz2[i]=sz2[i+1];
				sz2[i+1]=e;
				strcpy(f,zf2[i]);
				strcpy(zf2[i],zf2[i+1]);
				strcpy(zf2[i+1],f);
			}
		}
	}
	for(i=0;i<m;i++){
		printf("%s\n", zf2[i]);
	}
	for(i=0;i<n;i++){
		printf("%s\n", zf[i]);
	}
	return 0;
}
int main (){
	int a[100],e[100],f[100];
	char c[100][100],b[100][100],d[100][100],x[100];
	int n,p=0,q=0,k,z,i;
	scanf("%d",&n);
	for (i=0;i<n;i++){
		scanf("%s%d",c[i],&a[i]);
		if(a[i]>=60){
			p++;
			e[i-q]=a[i];
			strcpy(b[i-q],c[i]);
		}
		if(a[i]<60){
			q++;
			f[i-p]=a[i];
			strcpy(d[i-p],c[i]);
		}
	}

for (k=1;k<=p;k++){
		for (i=0;i<p-k;i++){
			if(e[i]<e[i+1]){
				z=e[i];
				e[i]=e[i+1];
				e[i+1]=z;
			strcpy(	x,b[i]);
			strcpy(	b[i],b[i+1]);
			strcpy(	b[i+1],x);
			}

		}
	}
for(i=0;i<p;i++){
	puts(b[i]);
}
for(i=0;i<q;i++){
	puts(d[i]);
}

	return 0;
}
struct student
{
	char num[10];
    int age;
}stu[100];

int main()
{
	char c;
    int n,i,j;    
    struct student*pstu=stu,e;
    pstu=&stu[0];

	scanf("%d",&n);
	for(i=0;i<n;i++){
	scanf("%s %d",stu[i].num,&stu[i].age);

    }
    for(j=0;j<n;j++){if(stu[j].age>=60){
                     for(i=j;i>0;i--){
                                        if(stu[i].age>stu[i-1].age){
                                                                  e=*(pstu+i);
                                                                  *(pstu+i)=*(pstu+i-1);
                                                                  *(pstu-1+i)=e;}
                                        }
                     }}
    for(i=0;i<n;i++){
                     printf("%s\n",(pstu+i)->num);}
return 0;
   

}
struct BING
{
       char id[10];
       int old;
}bing[100],temp;
int main()
{
    int i,j,k,n,p,max;
    scanf("%d",&n);
    for(i=0;i<n;i++){
                     scanf("%s%d",bing[i].id,&bing[i].old);
                     }
    for(p=0;;p++){max=-1;
                  for(i=0;i<n;i++){
                                   if(bing[i].old>max&&bing[i].old>=60){max=bing[i].old;k=i;}
                                        }
    if(max>=60) {printf("%s\n",bing[k].id);bing[k].old=-1;}
    if(max<60) break;}
    for(i=0;i<n;i++){
                    if(bing[i].old<60&&bing[i].old>=0) printf("%s\n",bing[i].id) ;
                     } 
    return 0;
}
struct pa
	{
		char id[11];
		int age;
		struct pa *next;
	};
struct pa *insert(struct pa *head,struct pa * new1)
{
	struct pa *p0,*p1,*p2;
	p1=head;
	p0=new1;
	if(head==NULL)
	{
		head=p0;
		p0->next=NULL;
	}
	else if(p0->age>=60)
	{
		while((p1->age>=p0->age)&&(p1->next!=NULL))
		{
			p2=p1;
			p1=p1->next;
		}
		if(p0->age>p1->age)
		{
			if(head==p1)
				head=p0;
			else 
				p2->next=p0;
			p0->next=p1;
		}
		else
		{
			p1->next=p0;
			p0->next=NULL;
		}
	}
	else
	{
		p1=head;
		while(p1!=NULL)
		{
			p2=p1;
			p1=p1->next;
		}
		p2->next=p0;
		p0->next=NULL;
	}
	return(head);
}
void main()
{
	struct pa *p,*head;
	int n,i;
	head=NULL;
	scanf("%d",&n);
	for(i=0;i<n;i++)
	{
		p=(struct pa *)malloc(sizeof(struct pa));
		scanf("%s%d\n",p->id,&p->age);
		head=insert(head,p);
	}
	p=head;
	while(p!=NULL)
	{
		printf("%s\n",p->id);
		p=p->next;
	}
}
void main()
{
	int i,j=0,k=0,n,n1=-1,n2=-1,old=0;
	char xiao[100][10];
	struct bingren
	{
		char id[10];
		int age;
	};
	struct bingren a[100];
	struct bingren b[100];
	struct bingren t;
	scanf("%d",&n);
	for(i=0;i<n;i++)
		scanf("%s%d",a[i].id,&a[i].age);
	for(i=0;i<n;i++)
	{
		if(a[i].age>=60)
		{
           b[j]=a[i];
		   
		   n1++;
		   
		   j++;
		}
		else 
		{
			strcpy(xiao[k],a[i].id);
			k++;
			n2++;
		}
	}
	for(i=0;i<n1;i++)
	{
		for(j=0;j<n1-i;j++)
		{
           if(b[j].age<b[j+1].age)
		   {
			   t=b[j];
			   b[j]=b[j+1];
			   b[j+1]=t;
		   }
		}

	}

    for(i=0;i<=n1;i++)
		printf("%s\n",b[i].id);
	for(i=0;i<=n2;i++)
		printf("%s\n",xiao[i]);
}
int main()
{
	int num,i,j,l;//num??????
	scanf("%d",&num);
	struct inf  //?????????ID
	{
		char str[10];
		int age;
	}infs[101];
	struct f
	{
		char *p1;
		int m1;
	}old[101];//??????????
	for(i=0;i<num;i++)
	{
		scanf("%s %d",infs[i].str,&infs[i].age);
	}
	for(i=0,j=0;i<num;i++)//????????????????????????????
		if(infs[i].age>=60) 
		{old[j].m1=infs[i].age;
	     old[j].p1=infs[i].str;//??????????ID
	     j++;}
	int end=j;
	char *k;
	for(i=0;i<end-1;i++)//?????????????????????
	{
		for(j=0;j+1<end-i;j++)
			if(old[j].m1<old[j+1].m1)
			{
				l=old[j].m1;
				old[j].m1=old[j+1].m1;
				old[j+1].m1=l;
				k=old[j].p1;
				old[j].p1=old[1+j].p1;
				old[1+j].p1=k;
			}
	}
	for(i=0;i<end;i++)//??????
		printf("%s\n",old[i].p1);
	for(i=0;i<num;i++)
		if(infs[i].age<60)//????????
		printf("%s\n",infs[i].str);
}
int main()
{
	char s[100][100],a[100][100],b[100];
	int n,i,j=0,sz[100],t,c;
	scanf("%d",&n);
    for(i=0;i<n;i++){
	scanf("%s %d",s[i],&sz[i]);}
	for(i=0;i<n;i++){
		if(sz[i]<60){
			strcpy(a[j],s[i]);
	j++;}}
	for(t=1;t<=n;t++){
	   for(i=0;i<n-t;i++){
        if(sz[i]<sz[i+1]){
            c=sz[i+1];sz[i+1]=sz[i];sz[i]=c;
			strcpy(b,s[i+1]);
			strcpy(s[i+1],s[i]);
			strcpy(s[i],b);}}}
	for(i=0;i<n;i++){
		if(sz[i]>=60){
			printf("%s\n",s[i]);}}
	for(i=0;i<j;i++){
		printf("%s\n",a[i]);}
return 0;
}