专栏文章
题解:P12795 [NERC 2022] Football
P12795题解参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miosxzp6
- 此快照首次捕获于
- 2025/12/03 00:38 3 个月前
- 此快照最后确认于
- 2025/12/03 00:38 3 个月前
题解:P12795 [NERC 2022] Football
题意:
在 场比赛中,踢进 ,个球,踢丢 个球。
题目要求求出最小平局数并输出一个比分列表,满足有 场平局,其他比赛非平局。
主要思路:
观察可以发现平局场次的进球和失球数必须相等,即每场平局消耗的 和 相同。所以剩余比赛需分配剩余的 和 ,且所有非平局比赛必须满足 。
CPP
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,a,b;
cin>>n>>a>>b;
// 单场比赛情况
if(n==1){
if(a==b) cout<<"1\n"<<a<<':'<<b<<"\n";
else cout<<"0\n"<<a<<':'<<b<<"\n";
}
// 总进球数不足n场的情况
else if(a+b<n){
cout<<n-a-b<<"\n";
for(int i=1;i<=a;i++) puts("1:0");
for(int i=1;i<=b;i++) puts("0:1");
for(int i=1;i<=n-a-b;i++) puts("0:0");
}
// 正常情况
else{
cout<<"0\n";
// 无失球情况
if(b==0){
for(int i=1;i<n;i++) puts("1:0");
printf("%d:0",a-n+1);
}
// 进球数不足n-1场
else if(a<n-1){
for(int i=1;i<=a;i++) puts("1:0");
for(int i=1;i<=n-a-1;i++) puts("0:1");
printf("0:%d",b-(n-a-1));
}
// 一般情况
else{
for(int i=1;i<n-1;i++) puts("1:0");
printf("%d:0\n0:%d",a-(n-2),b);
}
}
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...