#include <cstdio>
#include <vector>
using namespace std;
template<class T>
bool IsPtrInVector(const vector<T>& v, const T* ptr)
{
const T* begin = &v[0];
const T* end = begin + v.size();
return ptr >= begin && ptr < end;
}
int main()
{
vector<int> v;
v.resize(15);
printf("&v[-1]? %d\n", IsPtrInVector(v, &v[-1]));
printf("&v[ 0]? %d\n", IsPtrInVector(v, &v[0]));
printf("&v[10]? %d\n", IsPtrInVector(v, &v[10]));
printf("&v[14]? %d\n", IsPtrInVector(v, &v[14]));
printf("&v[15]? %d\n", IsPtrInVector(v, &v[15]));
printf("&v[19]? %d\n", IsPtrInVector(v, &v[19]));
return 0;
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHZlY3Rvcj4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0ZW1wbGF0ZTxjbGFzcyBUPgpib29sIElzUHRySW5WZWN0b3IoY29uc3QgdmVjdG9yPFQ+JiB2LCBjb25zdCBUKiBwdHIpCnsKCWNvbnN0IFQqIGJlZ2luID0gJnZbMF07Cgljb25zdCBUKiBlbmQgPSBiZWdpbiArIHYuc2l6ZSgpOwoJcmV0dXJuIHB0ciA+PSBiZWdpbiAmJiBwdHIgPCBlbmQ7Cn0KCmludCBtYWluKCkKewoJdmVjdG9yPGludD4gdjsKCXYucmVzaXplKDE1KTsKCXByaW50ZigiJnZbLTFdPyAlZFxuIiwgSXNQdHJJblZlY3Rvcih2LCAmdlstMV0pKTsKCXByaW50ZigiJnZbIDBdPyAlZFxuIiwgSXNQdHJJblZlY3Rvcih2LCAmdlswXSkpOwoJcHJpbnRmKCImdlsxMF0/ICVkXG4iLCBJc1B0ckluVmVjdG9yKHYsICZ2WzEwXSkpOwoJcHJpbnRmKCImdlsxNF0/ICVkXG4iLCBJc1B0ckluVmVjdG9yKHYsICZ2WzE0XSkpOwoJcHJpbnRmKCImdlsxNV0/ICVkXG4iLCBJc1B0ckluVmVjdG9yKHYsICZ2WzE1XSkpOwoJcHJpbnRmKCImdlsxOV0/ICVkXG4iLCBJc1B0ckluVmVjdG9yKHYsICZ2WzE5XSkpOwoJcmV0dXJuIDA7Cn0=