#include <bits/stdc++.h>
int n, x[500005], y[500005], c[500005], Pos[1 << 21], Al = -1, Ar = -1;
long long Mls[1 << 21], Sum[1 << 21], Ans;
std::set<int> s;
std::vector<int> Ss[1000005];
inline void Pushup(const int p) {
  Sum[p] = Sum[p << 1] + Sum[p << 1 | 1];
  const long long O1 = Mls[p << 1], O2 = Sum[p << 1] + Mls[p << 1 | 1];
  Mls[p] = std::max(O1, O2), Pos[p] = Pos[p << 1 | (O1 < O2)];
}
inline void Update(int p, const int x) {
  for (p += 1 << 20, Mls[p] = (Sum[p] += x); p >>= 1;) Pushup(p);
}
int main() {
  std::ios::sync_with_stdio(false), std::cin.tie(0), std::cout.tie(0),
      std::cin >> n;
  for (int i = 0; i < n; ++i)
    std::cin >> x[i] >> y[i] >> c[i], s.insert(x[i]), s.insert(y[i]);
  std::vector<int> Ps(s.begin(), s.end());
  for (int i = 1; i < (int)Ps.size(); ++i) Update(i, Ps[i - 1] - Ps[i]);
  for (int i = 0; i < (int)Ps.size(); ++i) Pos[i + (1 << 20)] = Ps[i];
  for (int i = 0; i < n; ++i) {
    x[i] = std::lower_bound(Ps.begin(), Ps.end(), x[i]) - Ps.begin();
    y[i] = std::lower_bound(Ps.begin(), Ps.end(), y[i]) - Ps.begin();
    Ss[std::min(x[i], y[i])].push_back(i), Update(std::max(x[i], y[i]), c[i]);
  }
  for (int l = 0; l < (int)Ps.size(); ++l) {
    if (Mls[1] > Ans) Ans = Mls[1], Al = Ps[l], Ar = std::max(Pos[1], Al);
    for (int i : Ss[l]) Update(std::max(x[i], y[i]), -c[i]);
    if (l + 1 < (int)Ps.size()) Update(l + 1, Ps[l + 1] - Ps[l]);
  }
  if (Ans)
    std::cout << Ans << std::endl
              << Al << ' ' << Al << ' ' << Ar << ' ' << Ar << std::endl;
  else
    std::cout << "0\n1000000001 1000000001 1000000001 1000000001" << std::endl;
}
