题解:B4054 [语言月赛 202411] K/D/A

· · 题解

考察分支、循环结构和 scanf 处理特殊输入。

首先需要读入,读入的形式可以用 scanf 解决:

int K,D,A;
scanf("%d/%d/%d",&K,&D,&A);

得到 K,D,A 后可以按照题意使用 if else 语句计算每位玩家的评分,使用打擂台的方式找到最大值即可。代码如下:

int main(){
    int n,ans=1;
    int Mx=-1;
    cin>>n;
    for(int i=1;i<=n;i++){
        int K,D,A,val;
        scanf("%d/%d/%d",&K,&D,&A);
        if(K-D>=10)val=K*(K-D)+A;
        else if(K>=D)val=(K-D+1)*3+A;
        else val=A*2;
        if(val>Mx)Mx=val,ans=i;
    }
    cout<<ans;
    return 0;
}