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; }