#include <iostream>
#include <vector>
#include <string.h>
#include <string>
#include <stack>
#include <algorithm>
using namespace std;
int countRed, countYellow, countBlue;
enum color
{
red, yellow, blue
};
void increateCountColor(color ccolor,int num) {
switch (ccolor)
{
case red:
countRed += num;
break;
case yellow:
countYellow += num;
break;
case blue:
countBlue += num;
break;
default:
break;
}
}
color findColor(string strColor) {
if (strColor == "red") {
return red;
}
else if (strColor == "yellow") {
return yellow;
}
else {
return blue;
}
}
void outputCountRedYellowAndBlue() {
stack<color> st;
string strInput;
int strLength,countCharacters = 0;
getline(cin, strInput);
countRed = countBlue = countYellow = 0;
strLength = strInput.length();
for (int i = 0; i < strLength; i++) {
if (strInput[i] == '<') {
bool isEndColor = false;
string strTemp = "";
++i;
while (strInput[i] != '>') {
if (strInput[i] != '/') {
strTemp += strInput[i];
}
else {
isEndColor = true;
}
++i;
}
if (isEndColor == true) {
increateCountColor(st.top(), countCharacters);
st.pop();
}
else {
if (st.empty() == false) {
increateCountColor(st.top(), countCharacters);
}
st.push(findColor(strTemp));
}
countCharacters = 0;
}
else {
if(strInput[i] != ' ') countCharacters++;
}
}
cout << countRed << ' ' << countYellow << ' ' << countBlue << endl;
}
int main() {
outputCountRedYellowAndBlue();
return 0;
}
#include <iostream>
#include <vector>
#include <string.h>
#include <string>
#include <stack>
#include <algorithm>
using namespace std;
int countRed, countYellow, countBlue;
enum color
{
red, yellow, blue
};
void increateCountColor(color ccolor,int num) {
switch (ccolor)
{
case red:
countRed += num;
break;
case yellow:
countYellow += num;
break;
case blue:
countBlue += num;
break;
default:
break;
}
}
color findColor(string strColor) {
if (strColor == "red") {
return red;
}
else if (strColor == "yellow") {
return yellow;
}
else {
return blue;
}
}
void outputCountRedYellowAndBlue() {
stack<color> st;
string strInput;
int strLength,countCharacters = 0;
getline(cin, strInput);
countRed = countBlue = countYellow = 0;
strLength = strInput.length();
for (int i = 0; i < strLength; i++) {
if (strInput[i] == '<') {
bool isEndColor = false;
string strTemp = "";
++i;
while (strInput[i] != '>') {
if (strInput[i] != '/') {
strTemp += strInput[i];
}
else {
isEndColor = true;
}
++i;
}
if (isEndColor == true) {
increateCountColor(st.top(), countCharacters);
st.pop();
}
else {
if (st.empty() == false) {
increateCountColor(st.top(), countCharacters);
}
st.push(findColor(strTemp));
}
countCharacters = 0;
}
else {
if(strInput[i] != ' ') countCharacters++;
}
}
cout << countRed << ' ' << countYellow << ' ' << countBlue << endl;
}
int main() {
outputCountRedYellowAndBlue();
return 0;
}