题解:P12795 [NERC 2022] Football
题解:P12795 [NERC 2022] Football
题意:
在
题目要求求出最小平局数并输出一个比分列表,满足有
主要思路:
观察可以发现平局场次的进球和失球数必须相等,即每场平局消耗的
#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;
}