#include <iostream>
#include <cmath>
#include <utility>
#include <array>
using namespace std;
template <int p>
double power(double val) {
return pow(val,p);
}
template <size_t ...powers>
constexpr auto make_power_funcs(index_sequence<powers...>) {
array<double(*)(double),256> arr = { &power<powers>... };
return arr;
}
constexpr auto power_funcs = make_power_funcs(make_index_sequence<256>());
int main ()
{
cout << power_funcs[2](5) << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDx1dGlsaXR5PgojaW5jbHVkZSA8YXJyYXk+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdGVtcGxhdGUgPGludCBwPgpkb3VibGUgcG93ZXIoZG91YmxlIHZhbCkgewogICAgcmV0dXJuIHBvdyh2YWwscCk7Cn0KCnRlbXBsYXRlIDxzaXplX3QgLi4ucG93ZXJzPgpjb25zdGV4cHIgYXV0byBtYWtlX3Bvd2VyX2Z1bmNzKGluZGV4X3NlcXVlbmNlPHBvd2Vycy4uLj4pIHsKICAgIGFycmF5PGRvdWJsZSgqKShkb3VibGUpLDI1Nj4gYXJyID0geyAmcG93ZXI8cG93ZXJzPi4uLiB9OwogICAgcmV0dXJuIGFycjsKfQoKY29uc3RleHByIGF1dG8gcG93ZXJfZnVuY3MgPSBtYWtlX3Bvd2VyX2Z1bmNzKG1ha2VfaW5kZXhfc2VxdWVuY2U8MjU2PigpKTsKCmludCBtYWluICgpCnsKICAgIGNvdXQgPDwgcG93ZXJfZnVuY3NbMl0oNSkgPDwgZW5kbDsKfQ==