#include <iostream>
#include <vector>
int main()
{
std::vector<int> v;
v.push_back(3);
v.push_back(1);
v.push_back(0);
v.push_back(6);
v.push_back(2);
v.push_back(5);
v.push_back(4);
int j = 0;
int i = 0;
for(i = 0; i < v.size(); i++)
{
if(v[i] > i)
{
j = i;
while( j < v.size() && v[j] >= j )
{
j = j + 1;
}
int temp = v[i];
v[i] = v[j];
v[j] = temp;
i = 0;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgppbnQgbWFpbigpCnsKICAgIHN0ZDo6dmVjdG9yPGludD4gdjsKICAgIHYucHVzaF9iYWNrKDMpOwogICAgdi5wdXNoX2JhY2soMSk7CiAgICB2LnB1c2hfYmFjaygwKTsKICAgIHYucHVzaF9iYWNrKDYpOwogICAgdi5wdXNoX2JhY2soMik7CiAgICB2LnB1c2hfYmFjayg1KTsKICAgIHYucHVzaF9iYWNrKDQpOwogICAgaW50IGogPSAwOwogICAgaW50IGkgPSAwOwogICAgZm9yKGkgPSAwOyBpIDwgdi5zaXplKCk7IGkrKykKICAgIHsKICAgICAgICBpZih2W2ldID4gaSkgCiAgICAgICAgewogICAgICAgICAgICBqID0gaTsKICAgICAgICAgICAgd2hpbGUoIGogPCB2LnNpemUoKSAmJiB2W2pdID49IGogKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBqID0gaiArIDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaW50IHRlbXAgPSB2W2ldOwogICAgICAgICAgICB2W2ldID0gdltqXTsKICAgICAgICAgICAgdltqXSA9IHRlbXA7CiAgICAgICAgICAgIGkgPSAwOwogICAgICAgIH0KCiAgICB9CiAgICByZXR1cm4gMDsKfQ==