#include <numeric>
#include <vector>
#include <iostream>
struct Path
{
std::vector<double> distance;
std::vector<double> safety;
};
int main()
{
std::vector<Path> paths{
{
{ 1.0, 2.0 }, {}
},
{
{ 3.0 }, {}
}
};
double sum = 0.0;
for ( auto const& path : paths ) {
for ( double d : path.distance ) {
sum += d;
}
}
std::cout << sum << std::endl;
std::cout <<
std::accumulate(
paths.begin(),
paths.end(),
0,
[](double res, Path const& path) {
return res + std::accumulate(path.distance.begin(), path.distance.end(), 0);
})<<std::endl;
}
I2luY2x1ZGUgPG51bWVyaWM+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxpb3N0cmVhbT4KCnN0cnVjdCBQYXRoCnsKICAgIHN0ZDo6dmVjdG9yPGRvdWJsZT4gZGlzdGFuY2U7CiAgICBzdGQ6OnZlY3Rvcjxkb3VibGU+IHNhZmV0eTsKfTsKCmludCBtYWluKCkKewogICAgc3RkOjp2ZWN0b3I8UGF0aD4gcGF0aHN7CiAgICAgICAgewogICAgICAgICAgICB7IDEuMCwgMi4wIH0sIHt9CiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIHsgMy4wIH0sIHt9CiAgICAgICAgfQogICAgfTsKCiAgICBkb3VibGUgc3VtID0gMC4wOwogICAgZm9yICggYXV0byBjb25zdCYgcGF0aCA6IHBhdGhzICkgewogICAgICAgIGZvciAoIGRvdWJsZSBkIDogcGF0aC5kaXN0YW5jZSApIHsKICAgICAgICAgICAgc3VtICs9IGQ7CiAgICAgICAgfQogICAgfQogICAgc3RkOjpjb3V0IDw8IHN1bSA8PCBzdGQ6OmVuZGw7CgogICAgc3RkOjpjb3V0IDw8CiAgICAgICAgc3RkOjphY2N1bXVsYXRlKAogICAgICAgIHBhdGhzLmJlZ2luKCksCiAgICAgICAgcGF0aHMuZW5kKCksCiAgICAgICAgMCwKICAgICAgICBbXShkb3VibGUgcmVzLCBQYXRoIGNvbnN0JiBwYXRoKSB7CiAgICAgICAgICAgIHJldHVybiByZXMgKyBzdGQ6OmFjY3VtdWxhdGUocGF0aC5kaXN0YW5jZS5iZWdpbigpLCBwYXRoLmRpc3RhbmNlLmVuZCgpLCAwKTsKICAgICAgICB9KTw8c3RkOjplbmRsOwogICAKfQ==