#include <iostream>
#include <vector>
template <class fwdit>
typename fwdit::value_type arithmetic_mean(fwdit begin, fwdit end) {
typedef typename fwdit::value_type res_type;
res_type sum = res_type();
size_t count = 0;
for (fwdit pos = begin; pos!= end; ++pos) {
sum += *pos;
++count;
}
return sum/count;
}
int main() {
std::vector< int> vi( 10, 3);
vi[9] = 5;
double average = arithmetic_mean( vi.begin(), vi.end());
std::cout << average;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdGVtcGxhdGUgPGNsYXNzIGZ3ZGl0PiAKdHlwZW5hbWUgZndkaXQ6OnZhbHVlX3R5cGUgYXJpdGhtZXRpY19tZWFuKGZ3ZGl0IGJlZ2luLCBmd2RpdCBlbmQpIHsgCgogICAgdHlwZWRlZiB0eXBlbmFtZSBmd2RpdDo6dmFsdWVfdHlwZSByZXNfdHlwZTsKCiAgICByZXNfdHlwZSBzdW0gPSByZXNfdHlwZSgpOwogICAgc2l6ZV90IGNvdW50ID0gMDsKCiAgICBmb3IgKGZ3ZGl0IHBvcyA9IGJlZ2luOyBwb3MhPSBlbmQ7ICsrcG9zKSB7IAogICAgICAgIHN1bSArPSAqcG9zOwogICAgICAgICsrY291bnQ7CiAgICB9CiAgICByZXR1cm4gc3VtL2NvdW50Owp9CgppbnQgbWFpbigpIHsKCXN0ZDo6dmVjdG9yPCBpbnQ+IHZpKCAxMCwgMyk7CiAgICB2aVs5XSA9IDU7CiAgICBkb3VibGUgYXZlcmFnZSA9IGFyaXRobWV0aWNfbWVhbiggdmkuYmVnaW4oKSwgdmkuZW5kKCkpOwogICAgc3RkOjpjb3V0IDw8IGF2ZXJhZ2U7CglyZXR1cm4gMDsKfQ==