diff options
Diffstat (limited to '2022/Day3/main.cpp')
| -rw-r--r-- | 2022/Day3/main.cpp | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/2022/Day3/main.cpp b/2022/Day3/main.cpp deleted file mode 100644 index 0be9a35..0000000 --- a/2022/Day3/main.cpp +++ /dev/null @@ -1,72 +0,0 @@ -#include<bits/stdc++.h> -using namespace std; - -using vi = vector<int>; - -#define all(x) (x).begin(), (x).end() -#define rall(x) (x).rbegin(), (x).rend() - -void part1() { - string s; - int sum = 0; - while(cin >> s) { - vector<bool> vis(54, 0); - string l = s.substr(0, s.size() / 2); - string r = s.substr(s.size() / 2, s.size()); - for (int i = 0; i < s.size() / 2; i++) { - if (count(all(r), l[i])) { - if (isupper(l[i]) && !vis[l[i] - 'A' + 27]) { - sum += l[i] - 'A' + 27; - vis[l[i] - 'A' + 27] = 1; - } else if (islower(l[i]) && !vis[l[i]- 'a' + 1]) { - sum += l[i] - 'a' + 1; - vis[l[i] - 'a' + 1] = 1; - } - } - } - } - cout << sum << '\n'; -} - -void getFrqThreeAndSum(string s, int &sum) { - vi fq(54, 0); - for (auto x : s) { - if(isupper(x)) { - fq[x - 'A' + 27]++; - } else { - fq[x - 'a' + 1]++; - } - } - for (int i = 0; i < fq.size(); i++) { - if (fq[i] == 3) { - sum += i; - } - } -} - -void part2() { - string s; - int sum = 0; - vector<string> v; - while(cin >> s) { - sort(all(s)); - auto res = unique(all(s)); - v.push_back(string(s.begin(), res)); - } - string tmp = ""; - int cnt = 1; - for (int i = 0; i < v.size(); i+=3) { - tmp = v[i] + v[i + 1] + v[i + 2]; - getFrqThreeAndSum(tmp, sum); - } - cout << sum << '\n'; -} - -int main () { - ios_base::sync_with_stdio(false); - cin.tie(NULL); - // part1(); - part2(); -} - - |
