打卡信奥刷题(980)用C++实现信奥 P1326 足球

P1326 足球

题目描述

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

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

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

输入格式

多组数据,每组数据一行三个整数 S , T , N S,T,N S,T,N 1 0 9 ≥ S , T ≥ 0 10^9\ge S,T \ge 0 109S,T0 1 0 9 ≥ N ≥ 1 10^9\ge N \ge 1 109N1)。每个测试点内数据组数不超过 3 × 1 0 4 3\times 10^4 3×104 组。

输出格式

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

输入输出样例 #1

输入 #1

1 1 1
1 1 2

输出 #1

1 1
3 2

C++实现

#include
#include
using namespace std;
int main(){
long long mx, mn, s, t, n;
while(~scanf(“%lld %lld %lld”, &s, &t, &n)) {
mx = mn = 0;
if(s < n) {
mx += s * 3;
mx += n - s - 1;
if(!t)
mx++;
printf(“%lld “, mx);
}
else{
mx += (n - 1) * 3;
if(s - (n - 1) > t)
mx += 3;
else if(s - (n - 1) == t)
mx++;
printf(”%lld “, mx);
}
if(s > t){
mn += 3;
if(t < n - 1)
mn += n - 1 - t;
printf(”%lld “, mn);
}
else{
long long a = 3, b = 0;
if(t < n - 1)
a += n - 1 - t;
if(n > t - s)
b = n - (t - s);
printf(”%lld “, min(a, b));
}
printf(”\n”);
}
return 0;
}

在这里插入图片描述

后续

接下来我会不断用C++来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现,记录日常的编程生活、比赛心得,感兴趣的请关注,我后续将继续分享相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值