#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
char grade[3];
char grades[] = {'A', 'B', 'C', 'D', 'F'};
float modifier = 0.3f,
result = 0.0f;
int gNum = strlen(grades),
maxValue = gNum-1;
//Function that checks if the input is a valid grade format. This isn't really required though.
bool isValidGrade(char* grade){
for(int i = 0; i < gNum; i++){
if(grade[0] == grades[i] &&(grade[1] == '\0' || (grade[1] != '\0' && (grade[1] == '-' || grade[1] == '+')))){
return true;
}
}
return false;
}
int main (){
cin>>grade;
if(isValidGrade(grade)){
//null second char, F and A+ will set the modifier to 0
if(grade[0] == 'F' || (grade[0] == 'A' && grade[1] == '+') || grade[1] == '\0'){
modifier = 0.0;
}else if(grade[1] == '-'){ //Check if modifier needs to be inverted
modifier *= -1.0;
}
//Find our grade, then use the index to get our base value and add the modifier
for(int i = 0; i < gNum; i++){
if(grades[i] == grade[0]){
result = (float)(maxValue - i) + modifier;
break;
}
}
//Print the grade value
cout<<result;
}else{
//Print error message.
cout<<"\""<<grade<<"\" is not a valid grade.";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0cmluZy5oPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNoYXIgZ3JhZGVbM107CmNoYXIgZ3JhZGVzW10gPSB7J0EnLCAnQicsICdDJywgJ0QnLCAnRid9OwoKZmxvYXQgbW9kaWZpZXIgPSAwLjNmLAogICAgICByZXN1bHQgPSAwLjBmOwoKaW50IGdOdW0gPSBzdHJsZW4oZ3JhZGVzKSwKICAgIG1heFZhbHVlID0gZ051bS0xOwoKLy9GdW5jdGlvbiB0aGF0IGNoZWNrcyBpZiB0aGUgaW5wdXQgaXMgYSB2YWxpZCBncmFkZSBmb3JtYXQuIFRoaXMgaXNuJ3QgcmVhbGx5IHJlcXVpcmVkIHRob3VnaC4KYm9vbCBpc1ZhbGlkR3JhZGUoY2hhciogZ3JhZGUpewogICAgZm9yKGludCBpID0gMDsgaSA8IGdOdW07IGkrKyl7CiAgICAgICAgaWYoZ3JhZGVbMF0gPT0gZ3JhZGVzW2ldICYmKGdyYWRlWzFdID09ICdcMCcgfHwgKGdyYWRlWzFdICE9ICdcMCcgJiYgKGdyYWRlWzFdID09ICctJyB8fCBncmFkZVsxXSA9PSAnKycpKSkpewogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gZmFsc2U7Cn0KCmludCBtYWluICgpewogICAgY2luPj5ncmFkZTsKCiAgICBpZihpc1ZhbGlkR3JhZGUoZ3JhZGUpKXsKICAgICAgICAvL251bGwgc2Vjb25kIGNoYXIsIEYgYW5kIEErIHdpbGwgc2V0IHRoZSBtb2RpZmllciB0byAwCiAgICAgICAgaWYoZ3JhZGVbMF0gPT0gJ0YnIHx8IChncmFkZVswXSA9PSAnQScgJiYgZ3JhZGVbMV0gPT0gJysnKSB8fCBncmFkZVsxXSA9PSAnXDAnKXsKICAgICAgICAgICAgbW9kaWZpZXIgPSAwLjA7CiAgICAgICAgfWVsc2UgaWYoZ3JhZGVbMV0gPT0gJy0nKXsgLy9DaGVjayBpZiBtb2RpZmllciBuZWVkcyB0byBiZSBpbnZlcnRlZAogICAgICAgICAgICBtb2RpZmllciAqPSAtMS4wOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvL0ZpbmQgb3VyIGdyYWRlLCB0aGVuIHVzZSB0aGUgaW5kZXggdG8gZ2V0IG91ciBiYXNlIHZhbHVlIGFuZCBhZGQgdGhlIG1vZGlmaWVyCiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IGdOdW07IGkrKyl7CiAgICAgICAgICAgIGlmKGdyYWRlc1tpXSA9PSBncmFkZVswXSl7CiAgICAgICAgICAgICAgICByZXN1bHQgPSAoZmxvYXQpKG1heFZhbHVlIC0gaSkgKyBtb2RpZmllcjsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIAogICAgICAgIC8vUHJpbnQgdGhlIGdyYWRlIHZhbHVlCiAgICAgICAgY291dDw8cmVzdWx0OwogICAgfWVsc2V7ICAgIAogICAgICAgIC8vUHJpbnQgZXJyb3IgbWVzc2FnZS4KICAgICAgICBjb3V0PDwiXCIiPDxncmFkZTw8IlwiIGlzIG5vdCBhIHZhbGlkIGdyYWRlLiI7CiAgICB9CiAgICByZXR1cm4gMDsKfQ==