#include
using namespace std;
int N,L,H;
struct stu
{
int B,C,D,Z;
};
void order(stu s[],int X);
int main()
{
stu s[100001];
int i,j,a[5]={0},M=0;
stu A1[100001],A2[100001],A3[100001],A4[100001];
cin>>N>>L>>H;
for(i=0;i<N;i++)
{
scanf(“%d%d%d”,&s[i].B,&s[i].D,&s[i].C);
s[i].Z=s[i].D+s[i].C;
if(s[i].D>=H&&s[i].C>=H)
{
A1[a[0]]=s[i];a[0]++;
}
else if(s[i].D>=H&&s[i].C>=L)
{
A2[a[1]]=s[i];a[1]++;
}
else if(s[i].D>=s[i].C&&s[i].C>=L)
{
A3[a[2]]=s[i];a[2]++;
}
else if(s[i].D>=L&&s[i].C>=L)
{
A4[a[3]]=s[i];a[3]++;
}
}
M=a[1]+a[2]+a[3]+a[0];
order(A1,a[0]);
order(A2,a[1]);
order(A3,a[2]);
order(A4,a[3]);
printf(“%d”,M);
for(j=0;j<a[0];j++)
printf(“\n%d %d %d”,A1[j].B,A1[j].D,A1[j].C);
for(j=0;j<a[1];j++)
printf(“\n%d %d %d”,A2[j].B,A2[j].D,A2[j].C);
for(j=0;j<a[2];j++)
printf(“\n%d %d %d”,A3[j].B,A3[j].D,A3[j].C);
for(j=0;j<a[3];j++)
printf(“\n%d %d %d”,A4[j].B,A4[j].D,A4[j].C);
return 0;
}
void order(stu s[],int X)
{
int i,j,k;
stu temp;
for(i=1;i<X;i++)
{
for(j=0;j<i;j++)
{
if(s[i].Z>s[j].Z)
{
temp=s[i];
for(k=i;k>j;k–)
s[k]=s[k-1];
s[k]=temp;
break;
}
else if(s[i].Z==s[j].Z)
{
if(s[i].D>s[j].D)
{
temp=s[i];
for(k=i;k>j;k–)
s[k]=s[k-1];
s[k]=temp;
break;
}
else if(s[i].D==s[j].D)
{
if(s[i].B<s[j].B)
{
temp=s[i];
for(k=i;k>j;k–)
s[k]=s[k-1];
s[k]=temp;
break;
}}}}}}
/*****************************************/
輸入的時候直接判斷該輸入輸入哪個等級的人才,然後將其存入對應的結構體數組。然後對每個結構體數組按要求進行排序輸出。使用printf輸出可以比cout輸出節省運行時間,避免運行超時。