codeforcesF1773足球

 

简单描述下题意,就是给出足球比赛的场次数,和a,b球队分别的进球数。求最小平局次数,并输出每一局的评分(符合要求均可)。

思路:

1.如果双方进球数为零,那么肯定n场都是平局;

2.如果只比一场,那么a,b相等就是平局,否则就不是

3.排除以上两种情况外,如果a+b>=n,那么最少可以一场平局都没有(都为1:0或0:1);

否则,最小平局数就是n-(a+b);

话不多说,上代码

#include<bits/stdc++.h>
using namespace std;

int main() {
int n,a,b;
cin>>n>>a>>b;
if(a==0&&b==0){
    cout<<n<<endl;
    for (int i = 0; i < n; i++)
    {
        cout<<"0:0"<<endl;
    }    
}else if(n==1){
    if(a==b){
        cout<<"1"<<endl;
        cout<<a<<":"<<b<<endl;
    }else {
        cout<<"0"<<endl;
        cout<<a<<":"<<b<<endl;
    }
}else if(a+b>=n){
    cout<<"0"<<endl;
    if(a>=n&&b!=0){
            int x=a-(n-2);
            cout<<x<<":"<<"0"<<endl;
            a=n-2;
            n--;
        }
    while (n>0)
    {   
        if(n==1){
            cout<<a<<":"<<b<<endl;//a=n-2;x=a-(n-2)
            break;
        }if(a){
            cout<<"1:0"<<endl;
            a--;
        }else {
            cout<<"0:1"<<endl;
            b--;
        }
        n--;
    }       
}else {
    cout<<(n-(a+b))<<endl;
    while (n>0)
    {
        if(n==(a+b)){
            if(n==1){
            cout<<a<<":"<<b<<endl;
            break;
        }
        if(a){
            cout<<"1:0"<<endl;
            a--;
        }else {
            cout<<"0:1"<<endl;
            b--;
        }
        }else cout<<"0:0"<<endl;
        n--;
    }   
}
return 0;
}

也许方法比较复杂,如有更好的方法,欢迎交流;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小爬菜、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值