青少年软件编程(C语言)等级考试试卷(五级)
分数:100 题数:4
一、编程题(共4题,共100分)
1.
拼点游戏
C和S两位同学一起玩拼点游戏。有一堆白色卡牌和一堆蓝色卡牌,每张卡牌上写了一个整数点数。C随机抽取n张白色卡牌,S随机抽取n张蓝色卡牌,他们进行n回合拼点,每次两人各出一张卡牌,点数大者获得三颗巧克力,小者获得一颗巧克力,如果点数相同,每人各得二颗巧克力,使用过的卡牌不得重复使用。已知C和S取到的卡牌点数,请编程计算S最多和最少能得到多少颗巧克力。
时间限制:1000
内存限制:65536
输入
输入包含多组测试数据。 每组测试数据的第一行是一个整数n(1<=n<=1000),接下来一行是n个整数,表示C抽到的白色卡牌的点数,下一行也是n个整数,表示S抽到的蓝色卡牌的点数。 输入的最后以一个0表示结束。
输出
对每组数据,输出一行,内容是两个整数用空格格开,分别表示S最多和最少可获得的巧克力数。
样例输入
3
92 83 71
95 87 74
2
20 20
20 20
2
20 19
22 18
0
样例输出
9 5
4 4
4 4
试题编号:20230318-5-01
试题类型:编程题
标准答案:
试题难度:一般
试题解析:
展示地址:点击浏览
考生答案:(此题已作答)
考生得分:
25
是否评分:已评分
评价描述:
考生答案:
#include<bits/stdc++.h>
using namespace std;
int n,o=0;
int c[1000]={0},s[1000]={0};
int c1[1000],s1[1000];
int main()
{
while(cin>>n,n)
{
o++;
for(int i=0;i<n;i++)
{
cin>>c[i];
}
for(int i=0;i<n;i++)
{
cin>>s[i];
}
int cs=0,ss=0;
int ch=0,sh=0,ct=n-1,st=n-1;
sort(c,c+n);
sort(s,s+n);
while(ch<=ct)
{
if(s[st]>c[ct])
{
ss+=3;
cs+=1;
st--;
ct--;
}
else if(s[st]<c[ct])
{
ss+=1;
cs+=3;
sh++;
ct--;
}
else if(s[st]==c[ct])
{
if(s[sh]<=c[ch])
{
if(s[sh]<c[ct])
{
ss+=1;
cs+=3;
sh++;
ct--;
}
else if(s[sh]==c[ct])
{
ss+=2;
cs+=2;
sh++;
ct--;
}
}
else
{
ss+=3;
cs+=1;
sh++;
ch++;
}
}
}
s1[o]=ss;
for(in
202303 C语言5级,2023年3月电子学会C语言编程等级考试五级真题试卷,少儿编程题库,C语言编程真题,电子学会真题