406. 根据身高重建队列

class Solution {
public:
static bool cmp(const vector<int>& A, const vector<int>& B) {
if(A[1] != B[1]) return A[1] < B[1];
return A[0] < B[0];
}
vector<vector<int>> reconstructQueue(vector<vector<int>>& people) {
sort(people.begin(), people.end(), cmp);
list<vector<int> > ans;
for(auto p : people) {
if(ans.empty() || p[1] == 0) ans.push_back(p);
else {
int cnt = 0;
auto it = ans.begin();
while(it != ans.end()) {
if((*it)[0] >= p[0]) {
cnt++;
if(cnt > p[1]) break;
}
it++;
}
ans.insert(it, p);
}
}
return vector<vector<int>>(ans.begin(), ans.end());
}
};