module main; // https://sugarknri.hatenablog.com/entry/2016/06/30/174033 より // 貪欲法、尺取り法 import std; void main() { // 入力 int N = readln.chomp.to!int * 2; auto A = readln.split.to!(long[]); // 答えの計算 A.sort; int[] ans; //Dryを探す int s = 0; //一番小さな値a[0]を選んで、それと組にしてDryになる物を大きな値の側から探してくる //Dryにできたらlは次へ、結果によらずrは次へ for (int l = 0, r = N - 1; l < r; r--) if (A[l] < -A[r]) { s++, l++; } ans ~= s; //Wetも同様 s = 0; for (int l = 0, r = N - 1; l < r; l++) if (A[l] > -A[r]) { s++, r--; } ans ~= s; //Moistもやるべき事は同じだが、lとrのどちらを進めるかを考える必要がある s = 0; for (int l = 0, r = N - 1; l < r;) { if (A[l] == -A[r]) { s++; l++; r--; } else if (A[l] + A[r] < 0) l++; else r--; } ans ~= s; // 答えの出力 writefln("%(%d %)", ans); }