#define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <vector> #include <algorithm> #include <functional> using namespace std; struct Man { int id; int virtue; int talent; int total; int type; }; vector<Man> man; bool cmp(const Man &a, const Man &b) { if (a.type != b.type) return a.type < b.type; else { if (a.total != b.total) return a.total > b.total; else { if (a.virtue != b.virtue) return a.virtue > b.virtue; else return a.id < b.id; } } } int main() { int n, l, h; cin >> n >> l >> h; int id_num, virtue_grade, talent_grade; Man tmp; for (int i = 0; i < n; i++) { scanf("%d %d %d", &id_num, &virtue_grade, &talent_grade); // cin >> id_num >> virtue_grade >> talent_grade; if (virtue_grade >= l && talent_grade >= l) { tmp.total = virtue_grade + talent_grade; if (virtue_grade >= h && talent_grade >= h) tmp.type = 0; else if (virtue_grade >= h && talent_grade < h) tmp.type = 1; else if (virtue_grade < h && talent_grade < h && virtue_grade >= talent_grade) tmp.type = 2; else tmp.type = 3; tmp.id = id_num; tmp.virtue = virtue_grade; tmp.talent = talent_grade; man.push_back(tmp); } } sort(man.begin(), man.end(), cmp); vector<Man>::iterator it; cout << man.size() << endl; for (it = man.begin(); it != man.end(); ++it) { printf("%08d %d %d\n", it->id, it->virtue, it->talent); // cout << it->id << " " << it->virtue << " " << it->talent << endl; } return 0; }