#include <iostream>
#include <vector>
#include <algorithm>
#include <unistd.h>
#include <sys/socket.h>
int main() {
int fds[2];
socketpair(AF_UNIX, SOCK_DGRAM, 0, fds);
if(fork() == 0) {
for(int i = 0; i < 4096; ++i)
send(fds[1], &i, sizeof(i), 0);
return 0;
}
else {
std::vector<int> ints;
for(int i = 0; i < 4096; ++i) {
int x;
recv(fds[0], &x, sizeof(i), 0);
ints.push_back(x);
}
std::cout << std::is_sorted(ints.begin(), ints.end()) << '\n';
return 0;
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CgppbnQgbWFpbigpIHsKICBpbnQgZmRzWzJdOwogIHNvY2tldHBhaXIoQUZfVU5JWCwgU09DS19ER1JBTSwgMCwgZmRzKTsKICBpZihmb3JrKCkgPT0gMCkgewogICAgZm9yKGludCBpID0gMDsgaSA8IDQwOTY7ICsraSkKICAgICAgc2VuZChmZHNbMV0sICZpLCBzaXplb2YoaSksIDApOwogICAgcmV0dXJuIDA7CiAgfQogIGVsc2UgewogICAgc3RkOjp2ZWN0b3I8aW50PiBpbnRzOwogICAgZm9yKGludCBpID0gMDsgaSA8IDQwOTY7ICsraSkgewogICAgICBpbnQgeDsKICAgICAgcmVjdihmZHNbMF0sICZ4LCBzaXplb2YoaSksIDApOwogICAgICBpbnRzLnB1c2hfYmFjayh4KTsKICAgIH0KICAgIHN0ZDo6Y291dCA8PCBzdGQ6OmlzX3NvcnRlZChpbnRzLmJlZ2luKCksIGludHMuZW5kKCkpIDw8ICdcbic7CiAgICByZXR1cm4gMDsKICB9Cn0=