[Timus 1522] Help to prove solution.

Revision en8, by sidereal, 2020-02-17 19:27:28

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;
  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;
    }
  }
};

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en18 English sidereal 2020-02-18 14:45:31 206
en17 English sidereal 2020-02-17 20:55:53 0 (published)
en16 English sidereal 2020-02-17 20:05:35 8 Tiny change: ' \lt c_i$ would hold, then t' -> ' \lt c_i$ held, then t'
en15 English sidereal 2020-02-17 19:59:13 621
en14 English sidereal 2020-02-17 19:52:49 889
en13 English sidereal 2020-02-17 19:34:59 247
en12 English sidereal 2020-02-17 19:33:49 227
en11 English sidereal 2020-02-17 19:31:25 110
en10 English sidereal 2020-02-17 19:29:36 17
en9 English sidereal 2020-02-17 19:29:03 87
en8 English sidereal 2020-02-17 19:27:28 4
en7 English sidereal 2020-02-17 19:27:17 2 Tiny change: 'is fine:\n~~~~~\n\' -> 'is fine:\n\n~~~~~\n\'
en6 English sidereal 2020-02-17 19:27:09 17
en5 English sidereal 2020-02-17 19:26:44 2 Tiny change: 'ne:\n~~~~~struct,202' -> 'ne:\n~~~~~\nstruct,202'
en4 English sidereal 2020-02-17 19:26:38 15
en3 English sidereal 2020-02-17 19:26:25 139
en2 English sidereal 2020-02-17 19:25:19 506
en1 English sidereal 2020-02-17 19:23:11 185 Initial revision (saved to drafts)