62 lines
1.4 KiB
C++
62 lines
1.4 KiB
C++
#include <bits/stdc++.h>
|
|
|
|
using namespace std;
|
|
|
|
int main(){
|
|
ifstream input_file("input.txt");
|
|
string line;
|
|
unsigned int score = 0;
|
|
|
|
// while(getline(input_file, line)){
|
|
// set<char> items;
|
|
// auto l = line.length();
|
|
|
|
// for(int i = 0; i < l / 2; ++i){
|
|
// items.insert(line[i]);
|
|
// }
|
|
|
|
// for(int i = l / 2; i < l; ++i){
|
|
// if(items.find(line[i]) != items.end()){
|
|
// if(line[i] >= 'a' && line[i] <= 'z'){
|
|
// score += line[i] - 'a' + 1;
|
|
// } else{
|
|
// score += line[i] - 'A' + 1 + 26;
|
|
// }
|
|
|
|
// break;
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
map<char, int> badges;
|
|
int group_counter = 0;
|
|
while(getline(input_file, line)){
|
|
set<char> items;
|
|
for(char c : line){
|
|
items.insert(c);
|
|
}
|
|
|
|
for(char c : items){
|
|
badges[c] += 1;
|
|
|
|
if(badges[c] == 3){
|
|
if(c >= 'a' && c <= 'z'){
|
|
score += c - 'a' + 1;
|
|
} else{
|
|
score += c - 'A' + 1 + 26;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(group_counter == 2){
|
|
group_counter = 0;
|
|
badges.clear();
|
|
} else{
|
|
group_counter++;
|
|
}
|
|
}
|
|
|
|
cout << "Score: " << score << endl;
|
|
|
|
return 0;
|
|
} |