#include<iostream>
#include<vector>
#include<cstdlib>//abs()
int show_vector(std::vector<int> &vec){
for(int i = 0; i < vec.size(); i++){
if(i > 0) std::cout << ", ";
std::cout << vec[i];
}
std::cout << std::endl;
return 1;
}
std::vector<int>* set_separator(std::vector<int>* value){
const int separator = 9999;
const int difference = 2;
std::vector<int>::iterator it = value->begin();
int prev = *it;
it++;
for(;it != value->end(); it++){
if(abs(*it - prev) >= difference){
value->insert(it, separator);
it++;
}
prev = *it;
}
return value;
}
int main(void){
std::vector<int> value;
value.push_back(1);
value.push_back(4);
value.push_back(7);
value.push_back(8);
value.push_back(11);
show_vector(value);
set_separator(&value);
show_vector(value);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CiNpbmNsdWRlPHZlY3Rvcj4KI2luY2x1ZGU8Y3N0ZGxpYj4vL2FicygpCgppbnQgc2hvd192ZWN0b3Ioc3RkOjp2ZWN0b3I8aW50PiAmdmVjKXsKCWZvcihpbnQgaSA9IDA7IGkgPCB2ZWMuc2l6ZSgpOyBpKyspewoJCWlmKGkgPiAwKSBzdGQ6OmNvdXQgPDwgIiwgIjsKCQlzdGQ6OmNvdXQgPDwgdmVjW2ldOwoJfQoJc3RkOjpjb3V0IDw8IHN0ZDo6ZW5kbDsKCXJldHVybiAxOwp9CgpzdGQ6OnZlY3RvcjxpbnQ+KiBzZXRfc2VwYXJhdG9yKHN0ZDo6dmVjdG9yPGludD4qIHZhbHVlKXsKCWNvbnN0IGludCBzZXBhcmF0b3IgPSA5OTk5OwoJY29uc3QgaW50IGRpZmZlcmVuY2UgPSAyOwoJCglzdGQ6OnZlY3RvcjxpbnQ+OjppdGVyYXRvciBpdCA9IHZhbHVlLT5iZWdpbigpOwoJaW50IHByZXYgPSAqaXQ7CglpdCsrOwoJCglmb3IoO2l0ICE9IHZhbHVlLT5lbmQoKTsgaXQrKyl7CgkJaWYoYWJzKCppdCAtIHByZXYpID49IGRpZmZlcmVuY2UpewoJCQl2YWx1ZS0+aW5zZXJ0KGl0LCBzZXBhcmF0b3IpOwoJCQlpdCsrOwoJCX0KCQlwcmV2ID0gKml0OwoJfQoJCglyZXR1cm4gdmFsdWU7Cn0KCmludCBtYWluKHZvaWQpewoJc3RkOjp2ZWN0b3I8aW50PiB2YWx1ZTsKCQoJdmFsdWUucHVzaF9iYWNrKDEpOwoJdmFsdWUucHVzaF9iYWNrKDQpOwoJdmFsdWUucHVzaF9iYWNrKDcpOwoJdmFsdWUucHVzaF9iYWNrKDgpOwoJdmFsdWUucHVzaF9iYWNrKDExKTsKCQoJc2hvd192ZWN0b3IodmFsdWUpOwoJCglzZXRfc2VwYXJhdG9yKCZ2YWx1ZSk7CgkKCXNob3dfdmVjdG9yKHZhbHVlKTsKCQoJcmV0dXJuIDA7Cn0K
1, 4, 7, 8, 11
1, 9999, 4, 9999, 7, 8, 9999, 11