#include #include #include std::vector parse(const char* file) { std::vector v; if (std::ifstream input{ file }; input.is_open()) { std::string line; while (not std::getline(input,line).eof()) { v.push_back(std::move(line)); } } return v; } int main(int argc, char* argv[]) { int answer{}; auto v = parse(argv[1]); for (int c = 0; c < v.size(); ++c) { int floor = v.size(); for (int r = 0; r < v.size(); ++r) { switch (v[r][c]) { case '#': floor = v.size() - r - 1; break; case 'O': answer += floor--; } } } std::cout << answer << std::endl; return 0; }