import sys
from heapq import heappop, heappush
input = lambda: sys.stdin.readline().rstrip()
I = lambda: int(input())
MI = lambda: map(int, input().split())
GMI = lambda: map(lambda x: int(x) - 1, input().split())
LI = lambda: list(MI())
LGMI = lambda: list(GMI())
YN = lambda x: print('YES' if x else 'NO')
mod = 1000000007
mod2 = 998244353
n = I()
nums = LI()
h = []
rst = []
zero = 0
for x in nums:
if x > 0:
rst.append(x)
elif x < 0:
heappush(h, x)
else:
zero += 1
while len(h) >= 2:
rst.append(heappop(h))
rst.append(heappop(h))
if rst:
print(*rst)
else:
if zero:
print(0)
else:
print(max(h))
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <set>
#include <map>
#include <string>
using namespace std;
void solve() {
int n;
cin >> n;
vector<int> pos, z, neg;
for (int i = 0; i < n; i++) {
int x;
cin >> x;
if (x > 0)
pos.push_back(x);
else if (x == 0)
z.push_back(x);
else
neg.push_back(x);
}
sort(neg.begin(), neg.end());
vector<int> res = pos;
if (neg.size() > 1) {
for (int i = 0; i + 1 < neg.size(); i += 2) {
res.push_back(neg[i]);
res.push_back(neg[i + 1]);
}
}
if (res.empty() && !z.empty())
res.push_back(z[0]);
if (res.empty() && !neg.empty())
res.push_back(neg[0]);
for (int x : res)
cout << x << " ";
}
int main() {
int n = 1;
//cin >> n;
for (int i = 0; i < n; i++)
solve();
}
1302. Deepest Leaves Sum | 1209. Remove All Adjacent Duplicates in String II |
994. Rotting Oranges | 983. Minimum Cost For Tickets |
973. K Closest Points to Origin | 969. Pancake Sorting |
967. Numbers With Same Consecutive Differences | 957. Prison Cells After N Days |
946. Validate Stack Sequences | 921. Minimum Add to Make Parentheses Valid |
881. Boats to Save People | 497. Random Point in Non-overlapping Rectangles |
528. Random Pick with Weight | 470. Implement Rand10() Using Rand7() |
866. Prime Palindrome | 1516A - Tit for Tat |
622. Design Circular Queue | 814. Binary Tree Pruning |
791. Custom Sort String | 787. Cheapest Flights Within K Stops |
779. K-th Symbol in Grammar | 701. Insert into a Binary Search Tree |
429. N-ary Tree Level Order Traversal | 739. Daily Temperatures |
647. Palindromic Substrings | 583. Delete Operation for Two Strings |
518. Coin Change 2 | 516. Longest Palindromic Subsequence |
468. Validate IP Address | 450. Delete Node in a BST |