You are on page 1of 2

#include<iostream>

#include<vector>
#include<string>
using namespace std;
int setPriority(vector<char> mine, char food, int size, int previousCoal)
{
int i, flagM = 0, flagB = 0, flagF = 0;
if(food == 'F') flagF = 1;
else if(food == 'M') flagM = 1;
else flagB = 1;
for(i = size - 1; i >= size - 2 && i >= 0; i--)
{
if(mine[i] == 'F') flagF = 1;
else if(mine[i] == 'M') flagM = 1;
else flagB = 1;
}
int coal = (flagF + flagM + flagB);
int diff = (coal - previousCoal + 5);
int tiraTeima = 50;
if(size > 0)
if(mine[size - 1] == food)
tiraTeima = 0;
return coal*100 + diff*1000 + tiraTeima;
}
int main()
{
string s;
while(cin >> s)
{
int i, c, sSize, total = 0,
sizeM1 = 0, sizeM2 = 0,
prevCoal1 = 0, prevCoal2 = 0;
vector <char> mine1, mine2;
sSize = s.size();
for(i = 0; i < sSize; i++)
{
int p1 = 1 + setPriority(mine1, s[i], sizeM1, prevCoal1)
;
int p2 = setPriority(mine2, s[i], sizeM2, prevCoal2);
//cout << p1 << ' ' << p2;
if(p1 > p2)
{
c = (p1 % 1000) / 100;
prevCoal1 = c;
mine1.push_back(s[i]);
sizeM1++;
}
else
{
c = (p2 % 1000) / 100;
prevCoal2 = c;
mine2.push_back(s[i]);

sizeM2++;
}
total+= c;
/*int j;
cout << "m1: ";
for(j = 0; j < sizeM1; j++)
cout << mine1[j] << ' ';
cout << endl << "m2: ";
for(j = 0; j < sizeM2; j++)
cout << mine2[j] << ' ';
cout << endl;*/
}
cout << total << endl;
}
return 0;
}

You might also like