2022年南海区信息学真题

第1题     求和     时限:1s 空间:256m

小诗、小珊和小真各自都有几颗糖果,他们想要比一比糖果的数目。

他们想要知道,三个小朋友当中有没有某个人手里拥有的糖果数刚好等于其他两个人拥有的糖果数加起来。如果有的话,请你输出这个人的糖果数。

输入格式

三个正整数 a, b, c(1 ≤ a, b, c ≤ 100) 分别表示小诗、小珊和小真的糖果数。

输出格式

包含一行: 如果有某个小朋友手里的糖果数刚好等于其他两个人拥有的糖果数加起来,请你输出这个人的糖果数, 否则请输出 -1

输入/输出例子1

输入:

1 4 3

输出:

输入/输出例子2

输入:

2 5 8

输出:

-1

样例解释

样例解释 1 :小诗有1颗糖果,小珊有4颗糖果,小真有3颗糖果,所以小珊手里的糖果数刚好等于小诗和小真的糖果数加起来。

样例解释 2 :三个人都不符合条件要求。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,b,c;
	cin>>a>>b>>c;
	if(a+b==c){
		cout<<c;
	}else if(a+c==b){
		cout<<b;
	}else if(b+c==a){
		cout<<a;
	}else{
		cout<<-1;
	}
	return 0;
}
第2题     中位数     时限:1s 空间:256m

经过上次比拼,小诗、小珊和小真还觉得意犹未尽,于是他们进行了新一轮的比拼。 不过,让糖果最多或糖果最少的人获胜都太简单了,今天他们决定让糖果数目排在中间的人获胜。 神奇的是,他们拥有的糖果数目互不相同,所以刚好只会有一位赢家。请你输出赢家拥有的糖果数。 例如,小诗有5颗糖果,小珊有2颗糖果,小真有6颗糖果,赢家是小诗,他有5颗糖果。

输入格式

输入三个正整数 a, b, c(1≤ a, b, c ≤ 100),分别表示小诗、小珊和小真的糖果数。

输出格式

输出一个正整数,表示赢家拥有的糖果数。

输入/输出例子1

输入:

11 19 12

输出:

12

输入/输出例子2

输入:

10 8 20

输出:

10

样例解释

样例解释 1 :小诗最少,有11颗糖果;小珊最多,有19颗糖果;小真胜出,有12颗糖果。

样例解释 2 :小珊最少,有8颗糖果;小真最多,有20颗糖果;小诗胜出,有10颗糖果。

#include<bits/stdc++.h>
using namespace std;
int main(){
	int a,b,c;
	cin>>a>>b>>c;
	if(a<b&&a>c||a>b&&a<c){
		cout<<a;
	}else if(b<a&&b>c||b>a&&b<c){
		cout<<b;
	}else if(c<b&&c>a||c>b&&c<a){
		cout<<c;
	}
	return 0;
}
第3题     拼字母     时限:1s 空间:256m

小诗在玩一个拼字母游戏。这个游戏的界面给出了一个字符串,需要玩家先购买字母再拼接。 游戏有一个特殊规则,玩家所购买的字母必须是英语字母表中从 开始的连续若干个字母。 只要购买了某个字母,玩家就可以无限次数使用这个字母。当然,聪明的你一定马上就会想到,只要把整个字母表买下就可以了。不过,小诗希望你帮他买尽可能少的字母也能拼出需要的字符串

输入格式

第一行输入一个正整数 n(1≤ ≤ 100)表示字符串的长度。

第二行输入一个长度为 的字符串 s,其中的每一位都是小写英文字母。

输出格式

输出一个正整数,表示最少需要买从 开始的连续几个字母才能拼出字符串。

输入/输出例子1

输入:

2

oi

输出:

15

输入/输出例子2

输入:

7

shishan

输出:

19

样例解释

样例解释 1: 是从 开始的第15个字母。

样例解释 2 : 是从 开始的第19个字母。

#include<bits/stdc++.h>
using namespace std;
char ch[105],maxx=0;
int main(){
	int a;
	cin>>a;
	cin>>ch;
	for(int i=0;ch[i]!='\0';i++){
		if(maxx<ch[i]){
			maxx=ch[i];
		}
	}
	for(int i=0;;i++){
		if('a'+i==maxx){
			cout<<i+1;
			break;
		}
	}
	return 0;
}
第4题     发气球     时限:1s 空间:256m

为了增添编程比赛的趣味,工作人员决定给顺利通过题目的选手发气球。 在这种赛制下,选手在比赛过程中提交自己的作答之后能够立即获得结果反馈。每次成功的提交都会 获得一个气球。同时为了鼓励竞速,最快解出某道题目的提交将获得一个额外的气球。 按时间顺序告诉你选手们通过题目的信息,请你计算整场比赛一共发出了多少个气球。

输入格式

第一行输入一个正整数 n(1 ≤ ≤100),表示成功提交的数量。 第二行输入一个长度为 的字符串,表示每次通过对应的题目,编号为 到 范围内的大写字母。

输出格式

输出一个正整数,表示总共发出的气球数。

输入/输出例子1

输入:

3

ABA

输出:

5

输入/输出例子2

输入:

7

SHISHAN

输出:

12

样例解释

样例解释 1 :某位选手通过了A 题,获得一个气球;他是最快解出A题的,获得一个气球奖励; 某位选手通过了B题,获得一个气球;他是最快解出B题的,获得一个气球奖励; 某位选手通过了A题,获得一个气球。 总共发出了五个气球。

#include<bits/stdc++.h>
using namespace std;
char ch[105];
int a1[105],sum,b;
int main(){
    int a;
    cin>>a;
    for(int i=1;i<=a;i++){
    	cin>>ch[i];
        a1[ch[i]-65+1]++;
        sum++;
        if(a1[ch[i]-65+1]==1){
            sum++;
        }
    }
    cout<<sum;
    return 0;
}
第5题     爬山     时限:1s 空间:256m

假期到了,小珊和家人一起到风景如画的南国桃园爬山游玩。 他们今天要爬的山一共有 级台阶,小珊每次可以爬1 级台阶或者爬2级台阶。不过他不能连续三次都爬两级台阶,因为这样太累了。 现在他问你,他最少需要多少步就能到达山顶。

数据范围】 对于20% 的测试数据,有1 ≤ ≤ 10; 对于70% 的测试数据,有1≤ ≤ 106; 对于100%的测试数据,有 ≤ ≤10010。 温馨提示:输入输出数据可能超过 32 位整数的表示范围,需要使用 64 位整数表示,例如 C++ 语 言中的 long long 类型。

输入格式

输入一个正整数 表示台阶数。

输出格式

输出一个正整数表示答案。

输入/输出例子1

输入:

1

输出:

1

输入/输出例子2

输入:

10 

输出:

6

样例解释

样例解释 1 :这座山总共有1级台阶,小珊只需要一步就能够到达山顶。

样例解释 一种可能的方案如下: 第一步:爬一级台阶 第二步:爬两级台阶 第三步:爬两级台阶 第四步:爬一级台阶 第五步:爬两级台阶 第六步:爬两级台阶

#include<bits/stdc++.h>
using namespace std;
int main(){
    long long n,sum=0;
    cin>>n;
    if(n%5==1||n%5==2){
        sum=n/5*3+1;
    }
    if(n%5==3||n%5==4){
        sum=n/5*3+2;
    }
    if(n%5==0){
        sum=n/5*3;
    }
    cout<<sum;
    return 0;
}
第6题     好胜     时限:1s 空间:256m

有 个人在进行一个比赛,第 个人的实力是 si。 每个人都想知道自己和其他人当中最强的人的差距是多少。形式化地,第 个人想要求出

360截图20230217100517509.jpg

请你输出对于这 个人各自的答案。

数据范围对于50%的测试数据,有1≤ ≤ 1000; 对于100%的测试数据,有 1≤ ≤ 101≤ s≤ 106

输入格式

第一行输入一个正整数 表示总人数。

第二行输入 个正整数 s1, s2· · · , s表示这 个人的实力。

输出格式

输出 个整数,其中第 个数表示第 个人与剩下 − 1个人中最强者的实力之差。

输入/输出例子1

输入:

1 2

输出:

-1 1

输入/输出例子2

输入:

4

4 4 4 4 

输出:

0 0 0 0 

输入/输出例子3

输入:

4 7 3 

输出:

-3  2  -4  -2

样例解释

样例解释 1 :对于第1个人,答案为 s− s=1-2=-1; 对于第2个人,答案为 s− s1 =2-1=1

样例解释 2 :对于第 1个人,其余3人的实力都是4,答案为 s− 4=4-4=0,其他三个人同理。 

样例解释 对于第1 个人,答案为 s− s2=4-7=-3; 对于第2 个人,答案为 s− s=7-5 =2; 对于第3个人,答案为 s− s2=3-7=-4; 对于第 4个人,答案为 s− s2=5-7=-2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值