洛谷 CF2022A:Bus to Pénjamo ← 模拟题

【题目来源】
https://www.luogu.com.cn/problem/CF2022A

https://codeforces.com/contest/2022/problem/A

【题目描述】
有 n 个家庭前往佩恩哈莫,见证墨西哥有史以来最大规模的 "拴着绳子遛鸡 "马拉松比赛。其中 i 个家庭有 ai 名家庭成员。所有家庭将乘坐一辆大巴,每辆大巴有 r 排, 2 个座位。
一个人在以下情况下被认为是幸福的:
● 另一名家庭成员与他们坐在同一排,或
● 他们独自坐在自己那一排(旁边有一个空座位)。
确定最佳座位安排下最多有多少人开心。注意,每个人都必须坐在车上。
保证所有家庭成员都能上车。形式上,保证
a1+a2+…+an≤2r

【输入格式】
每个测试包含多个测试用例。第一行包含测试用例的数量 t ( 1≤t≤1000 )。测试用例说明如下。
每个测试用例的第一行包含两个整数 n 和 r ( 1≤n≤100 ; 1≤r≤500)-
公交车上的家庭数量和座位行数
第二行包含 n 个整数 a1,a2,…,an( 1≤ai≤10 )。( 1≤ai≤10 )- 每个家庭的家庭成员数。

【输出格式】
针对每个测试案例,输出最佳座位安排下最多可容纳的人数。

【输入样例】
4
3 3
2 3 1
3 3
2 2 2
4 5
1 1 2 2
4 5
3 1 1 3

【输出样例】
4
6
6
6

【算法分析】
● 本题代码在 
https://codeforces.com/contest/2022/problem/A 提交,AC
● 本题代码在洛谷 
https://www.luogu.com.cn/problem/CF2022A 上提交,报错“Codeforces RemoteJudge 暂不可用,详见置顶帖”。所以,本题在洛谷中显示“提交 0,通过 0”的原因,不是因为题难,而是由于不让提交。

【算法代码】

#include 
using namespace std;

int n,r,x;
int k;

int main() {
    int T;
    cin>>T;
    while(T--) {
        int sum=0;
        int ans=0;

        cin>>n>>r;
        for(int i=1; i<=n; i++) {
            cin>>x;
            k=x/2;
            ans+=k*2, r-=x/2, x%=2;
            if(x) sum++;
        }

        if(sum<=r) ans+=sum;
        else ans=ans+2*r-sum;
        cout<





【参考文献】
https://codeforces.com/contest/2022
https://codeforces.com/contest/2022/problem/A
https://www.luogu.com.cn/problem/CF2022A
https://blog.csdn.net/asom12/article/details/142926443



 

你可能感兴趣的:(信息学竞赛,#,模拟算法与基础语法,算法)