#include <iostream>
#include <deque>
#include <list>
#include <vector>
namespace {
std::ios_base::Init const make_sure_cout_and_stuff_exists;
}
void* operator new (std::size_t size)
{
if (auto p = malloc(size))
{
static auto counter = 0;
std::cout << "Allocate (new) " << size << " bytes. " << p << " new-counter: " << ++counter << '\n';
return p;
}
throw std::bad_alloc();
}
void operator delete (void* p)
{
static auto counter = 0;
std::cout << "Deallocate (delete) " << p << " delete-counter: " << ++counter << '\n';
free(p);
}
int main()
{
std::deque<int> v;
for (auto i = 1500; i--; )
v.push_back(i);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZGVxdWU+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8dmVjdG9yPgoKbmFtZXNwYWNlIHsKCSAgc3RkOjppb3NfYmFzZTo6SW5pdCBjb25zdCBtYWtlX3N1cmVfY291dF9hbmRfc3R1ZmZfZXhpc3RzOwp9Cgp2b2lkKiBvcGVyYXRvciBuZXcgKHN0ZDo6c2l6ZV90IHNpemUpCnsKCWlmIChhdXRvIHAgPSBtYWxsb2Moc2l6ZSkpCgl7CgkJc3RhdGljIGF1dG8gY291bnRlciA9IDA7CgkJc3RkOjpjb3V0IDw8ICJBbGxvY2F0ZSAobmV3KSAiIDw8IHNpemUgPDwgIiBieXRlcy4gIiA8PCBwIDw8ICIgbmV3LWNvdW50ZXI6ICIgPDwgKytjb3VudGVyIDw8ICdcbic7CgkJcmV0dXJuIHA7Cgl9Cgl0aHJvdyBzdGQ6OmJhZF9hbGxvYygpOwp9CnZvaWQgb3BlcmF0b3IgZGVsZXRlICh2b2lkKiBwKQp7CgkgIHN0YXRpYyBhdXRvIGNvdW50ZXIgPSAwOwoJICBzdGQ6OmNvdXQgPDwgIkRlYWxsb2NhdGUgKGRlbGV0ZSkgIiA8PCBwIDw8ICIgZGVsZXRlLWNvdW50ZXI6ICIgPDwgKytjb3VudGVyIDw8ICdcbic7CgkgIGZyZWUocCk7Cn0KIAppbnQgbWFpbigpCnsKCSAgc3RkOjpkZXF1ZTxpbnQ+IHY7CgkgIGZvciAoYXV0byBpID0gMTUwMDsgaS0tOyApCgkJdi5wdXNoX2JhY2soaSk7Cn0=