![AC](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9jYW1vLmdpdGh1YnVzZXJjb250ZW50LmNvbS81NDYwMmFhZGFjYzU4NGM0OGExOTI1NWVmMDE1NjJiNjI3NTEzMGZiLzY4NzQ3NDcwNzMzYTJmMmY2OTJlNmM2ZjZjNjkyZTZlNjU3NDJmMzIzMDMyMzAyZjMwMzIyZjMwMzEyZjU0Njg3MTczNDY1MTZkNzg3NTM1NjQ1NjM0NTI0NzJlNzA2ZTY3?x-oss-process=image/format,png)
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id, de, cai, flag;
} man;
int cmp(const void *a, const void *b) {
man m1 = *(man *)a;
man m2 = *(man *)b;
if(m1.flag != m2.flag) {
return m1.flag - m2.flag
} else if((m1.de + m1.cai) != (m2.de + m2.cai)) {
return (m2.de + m2.cai) - (m1.de + m1.cai);
} else if( m1.de != m2.de) {
return m2.de - m1.de;
} else{
return m1.id - m2.id;
}
}
int main() {
int N, L, H;
scanf("%d %d %d", &N, &L, &H);
int cnt = 0;
man m[N];
for(int i = 0; i < N; i++) {
scanf("%d %d %d", &m[i].id, &m[i].de, &m[i].cai);
if(m[i].de >= L && m[i].cai >= L) {
cnt++;
if(m[i].de >= H && m[i].cai >= H) {
m[i].flag = 1;
} else if(m[i].de >= H) {
m[i].flag = 2;
} else if(m[i].de >= m[i].cai) {
m[i].flag = 3;
} else {
m[i].flag = 4;
}
} else {
m[i].flag = 5;
}
}
printf("%d\n", cnt);
qsort(m, N, sizeof(man), cmp);
for(int i = 0; i < cnt; i++)
printf("%08d %d %d\n", m[i].id, m[i].de, m[i].cai);
return 0;
}