class Solution {
public:
void sortColors(vector<int>& nums) {
int zero_pos = 0;
int one_pos = 0;
for(int i =0;i<nums.size();i++){
if(nums[i] == 0){
if(zero_pos<0){
zero_pos = 0;
}
nums.insert(nums.begin()+zero_pos, nums[i]);
nums.erase(nums.begin()+i+1);
zero_pos++;
if(one_pos>=0)
one_pos++;
}else if(nums[i] == 1){
if(one_pos<0){
one_pos = zero_pos>=0?zero_pos:0;
}
nums.insert(nums.begin()+one_pos, nums[i]);
nums.erase(nums.begin()+i+1);
}
}
}
};