#include <iostream>
#include <vector>
#include <numeric>
#include <cmath>
#include <cassert>
double cos(std::vector<double> const& lhs, std::vector<double> const& rhs) {
assert(lhs.size() == rhs.size());
return std::inner_product(lhs.begin(), lhs.end(), rhs.begin(), 0.)
/ (std::sqrt(std::inner_product(lhs.begin(), lhs.end(), lhs.begin(), 0.))
* std::sqrt(std::inner_product(rhs.begin(), rhs.end(), rhs.begin(), 0.)));
}
int main() {
std::cout << cos({1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, {10, 9, 8, 7, 6, 5, 4, 3, 2, 1}) << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPGNtYXRoPgojaW5jbHVkZSA8Y2Fzc2VydD4KCgpkb3VibGUgY29zKHN0ZDo6dmVjdG9yPGRvdWJsZT4gY29uc3QmIGxocywgc3RkOjp2ZWN0b3I8ZG91YmxlPiBjb25zdCYgcmhzKSB7CiAgICBhc3NlcnQobGhzLnNpemUoKSA9PSByaHMuc2l6ZSgpKTsKICAgIHJldHVybiBzdGQ6OmlubmVyX3Byb2R1Y3QobGhzLmJlZ2luKCksIGxocy5lbmQoKSwgcmhzLmJlZ2luKCksIDAuKQogICAgICAgICAgICAvIChzdGQ6OnNxcnQoc3RkOjppbm5lcl9wcm9kdWN0KGxocy5iZWdpbigpLCBsaHMuZW5kKCksIGxocy5iZWdpbigpLCAwLikpCiAgICAgICAgICAgICogc3RkOjpzcXJ0KHN0ZDo6aW5uZXJfcHJvZHVjdChyaHMuYmVnaW4oKSwgcmhzLmVuZCgpLCByaHMuYmVnaW4oKSwgMC4pKSk7Cn0KCgppbnQgbWFpbigpIHsKICAgIHN0ZDo6Y291dCA8PCBjb3MoezEsIDIsIDMsIDQsIDUsIDYsIDcsIDgsIDksIDEwfSwgezEwLCA5LCA4LCA3LCA2LCA1LCA0LCAzLCAyLCAxfSkgPDwgc3RkOjplbmRsOwp9Cg==