P1326 足球

题目描述

我们当中有很多热爱中国足球的同学,我们都知道中超(中国足球超级联赛)的规则:

一场比赛中,若获胜(即你的得分严格大于对手得分)则获得3的积分,若打平(即你的得分等于对手得分)则获得1分,若失败(即你的得分严格小于对手得分)获得0积分。

这个问题很简单,假设N轮比赛中你一共攻入S个球,丢掉T个球,那么你可能获得的最大得分和最小得分是多少?

输入格式

多组数据,每组数据一行:

一行三个整数S、T、N(S、T >= 0,N >= 1)。

输出格式

对于每组数据输出一行,两个整数表示最大得分和最小得分。

输入输出样例

输入 #1
1 1 1
1 1 2

输出 #1

1 1 3 2

代码

#include<bits/stdc++.h>
using namespace std;
int main()
{
    long long s,t,n;
    while(~scanf("%lld%lld%lld",&s,&t,&n)){
        long long maxn=0,minn=0x3fffffff;
        if(s>=n){
            maxn=(n-1)*3;
            if(s-n+1>t) maxn+=3;
            if(s-n+1==t) maxn+=1;
        }else {
            maxn=3*s-1;
            if(t==0) maxn++;
            maxn+=n-s;
        }
        if(t>=s){
            long long a=3,b=0;
            if(t<n-1)
                a+=n-1-t;
            if(n>t-s)
                b=n-(t-s);
            minn=min(a,b);
        }else {
            if(t>=n-1) minn=3;
            else minn=3+n-1-t;
        }
        printf("%lld %lld\n",maxn,minn);
    }
    return 0;
}

 

posted @ 2019-09-10 21:42  wangyiding  阅读(296)  评论(0编辑  收藏  举报