#include <initializer_list>
#include <vector>
#include <iostream>
template <typename T>
std::vector<T> makeArray (std::initializer_list<size_t> dims) {
size_t size = 1;
for (size_t d : dims) size *= d;
return std::vector<T> (size);
}
int main () {
std::vector<double> vec1 = makeArray<double> ({ 3, 5, 10});
std::cout << vec1.size () << std::endl;
std::vector<int> vec2 = makeArray<int> ({ 3 });
std::cout << vec2.size () << std::endl;
}
I2luY2x1ZGUgPGluaXRpYWxpemVyX2xpc3Q+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPgpzdGQ6OnZlY3RvcjxUPiBtYWtlQXJyYXkgKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzaXplX3Q+IGRpbXMpIHsKICAgIHNpemVfdCBzaXplID0gMTsKICAgIGZvciAoc2l6ZV90IGQgOiBkaW1zKSBzaXplICo9IGQ7CiAgICByZXR1cm4gc3RkOjp2ZWN0b3I8VD4gKHNpemUpOwp9CgppbnQgbWFpbiAoKSB7CiAgICBzdGQ6OnZlY3Rvcjxkb3VibGU+IHZlYzEgPSBtYWtlQXJyYXk8ZG91YmxlPiAoeyAzLCA1LCAxMH0pOwogICAgc3RkOjpjb3V0IDw8IHZlYzEuc2l6ZSAoKSA8PCBzdGQ6OmVuZGw7CgogICAgc3RkOjp2ZWN0b3I8aW50PiB2ZWMyID0gbWFrZUFycmF5PGludD4gKHsgMyB9KTsKICAgIHN0ZDo6Y291dCA8PCB2ZWMyLnNpemUgKCkgPDwgc3RkOjplbmRsOwoKfQ==