关于C++的一道题目求解

Description
小六是个吃货,现在是冬天,但是小六想吃西瓜了,没关系,小六是个小女巫,她有办法变出西瓜。但作为一个有追求的女巫,小六对西瓜的要求也是很高的,小六要吃的西瓜形状可以各异,但是西瓜皮的体积一定要够(小六爱吃西瓜皮)。现在有一个西瓜,请你先帮小六看看,她会不会吃这个西瓜。

Input
分3行输入;

第一行:小六最少要吃的西瓜皮的体积V;

第二行:一个字母,代表西瓜外壳的形状(b:球体,c:立方体)一个正数r(形状为b时,代表球体半径;形状为立方体时,代表立方体边长);

第三行:一个字母,代表西瓜内瓤的形状(b:球体,c:立方体)一个正数r(形状为b时,代表球体半径;形状为立方体时,代表立方体边长);

Output
如果西瓜皮的的体积大于V,则输出“YES”,否则输出“NO”;

Sample Input
13
c 3
c 2

Sample Output
YES

HINT
建议数据用double型

https://www.zhihu.com/question/51381686?sort=created

 #include<iostream>
#include<stdio.h>
#include<cmath>
#define PI 3.1415926
using namespace std;
string check(double,char,double,char,double);
int main()
{
    cout<<"Sampe Input:"<<endl;
    double volumn,in_r,out_r;
    char out_type,in_type;
    cin>>volumn;
    cin>>out_type>>out_r;
    cin>>in_type>>in_r;
    string res=check(volumn,out_type,out_r,in_type,in_r);
    cout<<"Sample output:"<<endl;
    cout<<res<<endl;
} 
string check(double volumn,char out_type,double out_r,char in_type,double in_r)
{
    string res;
    double out_volumn,in_volumn;
    if(out_type=='b')
    {
        out_volumn=PI*out_r*out_r;
    }
    else if(out_type=='c')
    {
        out_volumn=out_r*out_r*out_r;
    }
    if(in_type=='b')
    {
        in_volumn=PI*in_r*in_r;
    }
    else if(in_type=='c')
    {
        in_volumn=in_r*in_r*in_r;
    }
    res=((out_volumn-in_volumn)>volumn)?"YES":"NO";
    return res;
}