25 lines
704 B
C++
25 lines
704 B
C++
#include <iostream>
|
|
#include <regex>
|
|
#include <string>
|
|
|
|
int main() {
|
|
std::string line;
|
|
std::regex r{"(mul\\((\\d+),(\\d+)\\)|do\\(\\)|don't\\(\\))"};
|
|
int result = 0;
|
|
bool enabled = true;
|
|
while (std::getline(std::cin, line)) {
|
|
for (std::sregex_iterator iter{line.begin(), line.end(), r}, iter_end; iter != iter_end; iter++) {
|
|
const auto &match = *iter;
|
|
if (match[1] == "do()") {
|
|
enabled = true;
|
|
} else if (match[1] == "don't()") {
|
|
enabled = false;
|
|
} else if (enabled) {
|
|
const auto op1 = std::stoi(match[2]), op2 = std::stoi(match[3]);
|
|
result += op1 * op2;
|
|
}
|
|
}
|
|
}
|
|
std::cout << result << std::endl;
|
|
return EXIT_SUCCESS;
|
|
}
|