#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
#define max 1000
int main(int argc, char* argv[])
{
double result;
int i;
char line[max];
l:
while(cin.getline(line, max))
{
int len = string(line).length();
result = 0.0;
for(i = 0; i < len; i++,i++)
{
switch(line[i])
{
case 'A':result += 4;break;
case 'B':result += 3;break;
case 'C':result += 2;break;
case 'D':result += 1;break;
case 'F':result += 0;break;
default:
{
cout << "Unknown letter grade in input"<< endl;
goto l;
}
}
}
//cout << setiosflags(ios::fixed) << setprecision(2) << result /(i/2) << endl;
cout << fixed << setprecision(2) << result / (i/2) << endl;
}
return 0;
}
///use hash instead of switch-case
#include<iostream>
#include<string>
#include<iomanip>
using namespace std;
#define max 1000
int main(int argc, char* argv[])
{
double result;
int i;
char line[max];
int hash[6] = {4, 3, 2, 1, 0, 0};
l:
while(cin.getline(line, max))
{
int len = string(line).length();
result = 0.0;
for(i = 0; i < len; i++,i++)
{
int temp = line[i] - 'A';
if((temp >= 0 && temp <=3) || temp == 5)
result += hash[temp];
else
{
cout << "Unknown letter grade in input"<< endl;
goto l;
}
}
cout << fixed << setprecision(2) << result / (i/2) << endl;
}
return 0;
}