Problem link: https://acm.timus.ru/problem.aspx?space=1&num=1522
In this problem all you have to do is to come up with clever sorting comparator.
This one is fine: ***** struct info_t { int a, b, c, id; friend std::istream &operator >>(std::istream &is, info_t &inf) { return is >> inf.a >> inf.b >> inf.c; } int get() const { if (a <= c) { return (a + b); } else { return -(b + c); } }
bool operator <(const info_t &y) const { int xg = this->get(), yg = y.get(); if (sgn(xg) != sgn(yg)) { return sgn(xg) > sgn(yg); } else { return xg < yg; } } }; *****