#include <cstdio> #include <algorithm> using namespace std; #define stuMAX 100005 struct stu{ int no; int d, c; }; stu s[stuMAX]; int N, L, H; int level( stu a ){ if( a.d >= H ){ if( a.c >= H ) return 1; else return 2; } else if( a.d >= a.c ) return 3; return 4; } bool judge( stu a, stu b ){ if( a.d + a.c != b.d + b.c ) return a.d + a.c > b.d + b.c; if( a.d != b.d ) return a.d > b.d; return a.no < b.no; } bool cmp( stu a, stu b ){ int la = level( a ); int lb = level( b ); if( la != lb ) return la < lb; return judge( a, b ); } int main() { while( ~scanf( "%d%d%d", &N, &L, &H ) ){ for( int i = 0; i < N; i++ ){ scanf( "%d %d %d", &s[i].no, &s[i].d, &s[i].c ); if( s[i].d < L || s[i].c < L ){ i--; N--; } } sort( s, s + N, cmp ); printf( "%d\n", N ); for( int i = 0; i < N; i++ ){ printf( "%d %d %d\n", s[i].no, s[i].d, s[i].c ); } } return 0; }
|