请教一个C++编程里的题

【问题描述】

     小希看到小芳很容易就找到了她满意的工作,他也想去尝试一下,并参考了小芳找工作的方法。

     与小芳不同的是,小希希望根据三个条件综合评估来选择。

            月薪得分:  月薪/5000*100取整

            带薪假得分:有20分,无0分

            离家距离得分:不超过2000公里为100分。每超过200公里减10分,不足200公里按200公里计算,直至0分为止。

      给定3个公司A、B、C的数据,根据分数最大来判断小希应该接受哪家公司的offer。

【输入形式】

       输入为3行(分别为AB和C公司的数据),每行包含3个数据,分别表示公司给定的月薪(整数)、有无带薪休假(y-有,n-无)、离家距离(整数),所有的输入保证没有两个公司最终的得分相等。

【输出形式】

        输出一行一个字符(AB或C,表示小希应该选择的公司)

int main()
{
//    int m=(2200-2000)%200;
//    cout<3];
    
    for(int i=0;i<=2;i++)
    {
    scanf("%d %s %d",&m,&v,&d);
    
    
    
    //离家距离得分 
    if(d<=2000)
    {
        score[i]+=200;
    }
    else if(d>2000)
    {
        if((d-2000)%200==0)
        {
            score[i]+=100-(d-2000)/20;
            if(score[i]<0)
            {
                score[i]+=0;
            }
        }
        else 
        {
            score[i]+=100-((d-2000)/200+1)*10;
        }
    }
    
    //月薪得分
     score[i]+=m/5000*100;
     
    //带薪假得分
    if(v=='y')
    {
        score[i]+=20;
     } 
    else
    {
        score[i]+=0;
    }
    
    
    }

if(score[0]>score[1]&&score[0]>score[2])
{
    cout<<"A";
}
 else if(score[1]>score[0]&&score[1]>score[2])
{
    cout<<"B";
}
else if(score[2]>score[1]&&score[2]>score[0])
{
    cout<<"C";
}   
    
    return 0;
}

能帮忙找下有什么问题吗改了好多遍了,实在不知道该怎么改了

if(d<=2000)
{
score[i]+=200;
}
不超过2000公里得100分,你给它加200

if(score[i]<0)
{
score[i]+=0;
}
这是什么神奇的目的?
score[i]+=100-(d-2000)/20;
超过200公里减10分,这里除以20的目的是?