advent-of-code/2023/4/main-1.cpp

35 lines
621 B
C++
Raw Normal View History

2023-12-03 21:49:21 -08:00
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int ret = 0;
string line;
while (getline(cin, line) && !line.empty()) {
int count = 1;
int start = line.find(':');
int bar = line.find('|');
string left = line.substr(start + 2, bar - start - 3);
string right = line.substr(bar + 2);
istringstream lss(left), rss(right);
set<int> ls;
2023-12-03 21:49:21 -08:00
while (!lss.eof()) {
int n;
lss >> n;
ls.insert(n);
}
while (!rss.eof()) {
int n;
rss >> n;
if (ls.find(n) != ls.end()) {
count <<= 1;
2023-12-03 21:49:21 -08:00
}
}
ret += count >> 1;
}
cout << ret << '\n';
}