diff --git a/2023/3/main-1.cpp b/2023/3/main-1.cpp index 183bbb8..c2c0ca6 100644 --- a/2023/3/main-1.cpp +++ b/2023/3/main-1.cpp @@ -27,19 +27,12 @@ int main() { char ch = line[c]; if (ch == '.' || isDigit(ch)) continue; - vector rs = {r}, cs = {c}; - if (r > 0) { - rs.push_back(r - 1); - if (r < lines.size() - 1) - rs.push_back(r + 1); - } - if (c > 0) { - cs.push_back(c - 1); - if (c < cend - 1) - cs.push_back(c + 1); - } - for (int rr : rs) { - for (int cc : cs) { + for (int rr = r - 1; rr <= r + 1; rr++) { + if (rr < 0 || rr == lines.size()) + continue; + for (int cc = c - 1; cc <= c + 1; cc++) { + if (cc < 0 || cc == cend) + continue; auto& lo = lines[rr]; if (isDigit(lo[cc])) { int ci = cc, cf = cc; diff --git a/2023/3/main-2.cpp b/2023/3/main-2.cpp index 5551694..dceb6e6 100644 --- a/2023/3/main-2.cpp +++ b/2023/3/main-2.cpp @@ -28,20 +28,14 @@ int main() { if (ch != '*') continue; vector rs = {r}, cs = {c}; - if (r > 0) { - rs.push_back(r - 1); - if (r < lines.size() - 1) - rs.push_back(r + 1); - } - if (c > 0) { - cs.push_back(c - 1); - if (c < cend - 1) - cs.push_back(c + 1); - } int p = 1; int n = 0; - for (int rr : rs) { - for (int cc : cs) { + for (int rr = r - 1; rr <= r + 1; rr++) { + if (rr < 0 || rr == lines.size()) + continue; + for (int cc = c - 1; cc <= c + 1; cc++) { + if (cc < 0 || cc == cend) + continue; auto& lo = lines[rr]; if (isDigit(lo[cc])) { int ci = cc, cf = cc;