题意
构造二叉树,保证父节点的编号小于子节点且父节点的值小于子节点
求最少的二叉树个数,输出每棵二叉树
思路
对于当前的每个值,找到之前刚好小于等于他的值(upper_bound找到第一个大于x的位置),作为子节点,因为可能出现重复的值而且子节点个数只有两个,当已经有两个子节点时,这个点可以不用再考虑
代码
#include <bits/stdc++.h>
#define sc(a) scanf("%d",&a)
#define mem(a,b) memset(a,b,sizeof(a))
#define rep(i,a,b) for(int i=a;i<b;i++)
const int INF=0x3f3f3f3f;
const int maxn=1e5+50;
const