mid-kid
2 years ago
4 changed files with 2553 additions and 3 deletions
@ -0,0 +1,48 @@ |
|||
#include <iostream> |
|||
#include <vector> |
|||
#include <array> |
|||
|
|||
using namespace std; |
|||
|
|||
vector<array<unsigned, 2>> parse() |
|||
{ |
|||
vector<array<unsigned, 2>> input; |
|||
string line; |
|||
while (getline(cin, line)) { |
|||
if (line.size() < 3 || line[1] != ' ') abort(); |
|||
unsigned oppo = line[0] - 'A'; |
|||
unsigned user = line[2] - 'X'; |
|||
if (oppo >= 3 || user >= 3) abort(); |
|||
input.push_back({oppo, user}); |
|||
} |
|||
return input; |
|||
} |
|||
|
|||
unsigned p1(vector<array<unsigned, 2>> &input) |
|||
{ |
|||
unsigned score = 0; |
|||
for (array<unsigned, 2> i : input) { |
|||
unsigned shape = i[1]; |
|||
unsigned outcome = (i[1] - i[0] + 4) % 3; |
|||
score += shape + 1 + outcome * 3; |
|||
} |
|||
return score; |
|||
} |
|||
|
|||
unsigned p2(vector<array<unsigned, 2>> &input) |
|||
{ |
|||
unsigned score = 0; |
|||
for (array<unsigned, 2> i : input) { |
|||
unsigned shape = (i[1] + i[0] + 2) % 3; |
|||
unsigned outcome = i[1]; |
|||
score += shape + 1 + outcome * 3; |
|||
} |
|||
return score; |
|||
} |
|||
|
|||
int main() |
|||
{ |
|||
auto input = parse(); |
|||
cout << p1(input) << endl; |
|||
cout << p2(input) << endl; |
|||
} |
File diff suppressed because it is too large
@ -0,0 +1,2 @@ |
|||
13009 |
|||
10398 |
Loading…
Reference in new issue