宁波市第30届中小学生计算机程序设计竞赛
复赛试题(小学组
比赛时间:2015328日下午1:30—4:00
题目一览
试题名称
幸运数字
英雄卡
最强阵容
最强素数
英文代号
lucky
card
battle
prime
程序名
lucky.cpp/pas/c
card.cpp/pas/c
battle.cpp/pas/c
prime.cpp/pas/c
输入文件名
lucky.in
card.in
battle.in
prime.in
输出文件名
lucky.out
card.out
battle.out
prime.out
内存限制
128MB
128MB
128MB
128MB
时限
1S
1S
1S
1S
注意:
一、 关于竞赛中编程语言使用的规定参照中国计算机学会公布的《关于NOI系列赛编程语言使用限制的规定》。
二、 评测环境为windows

1. 幸运数字
(lucky.cpp/pas/c)
【题目描述】
小李非常喜欢数字47,看到一个数字他就想快速计算出因子里面分别有几个47,但是智商捉急的他总是要算很久,喜欢编程的你能够帮助他吗?
【输入】
第一行一个整数n,表示给定的数字。
【输出】 
两个用空格隔开的数字,分别表示给定数字的因子中47的个数。
【样例输入】
112
【样例输出】
2 1
【样例说明】
112=4*4*7
【数据规模】
50%的数据,3<=n<=230
100%的数据,3<=n<=260
2. 英雄卡
(card.cpp/pas/c)
【题目描述】
小李非常迷恋收集各种干脆面里面的英雄卡,为此他曾经连续一个月都只吃干脆面这一种零食,但是有些稀有英雄卡真的是太难收集到了。后来某商场搞了一次英雄卡兑换活动,只要你有三张编号连续的英雄卡,你就可以换任意编号的英雄卡。小李想知道他最多可以换到几张英雄卡(新换来的英雄卡不可以再次兑换)。
【输入】
第一行,共一个整数n,表示小李拥有的英雄卡数。
第二行,共n个空格隔开的数字ai,表示英雄卡的编号。
【输出】 
输出仅有一行,共1个整数,表示小李最多可以换到的英雄卡。
【样例输入】
6
3 1 2 4 4 5
【样例输出】
1
【样例说明】
    1 2 3三张编号连续,可以换一张,换完后剩下4 4 5,不符合兑换规则,无法继续兑换。
【数据规模】
    70%数据,1<=n<=1000
    100%数据,1<=n<=100001<=ai<=100000

3. 最强阵容
(battle.cpp/pas/c)
【题目描述】
拿着新换来的英雄卡,小李满心欢喜的准备和同学们PK一下。
他们的游戏规则非常简单,双方把自己的牌绕成一圈,然后指定一个起点,从该张牌开始顺时针方向往后取,谁取出的字符串字典序更小(从左到右开始比较,碰到第一个不一样的字符进行比较,比较规则为a<b<…<z)谁将获得胜利。具体规则可参考样例。虽然现在小李的牌已经很好了,但是你能不能帮他快速算出起始位置,使得他能够派出最强阵容。
【输入】
第一行n,表示共有n张牌。
第二行共n个用一个空格隔开的小写字母,表示给定的一圈牌起始序列。
【输出】 
仅一个整数,能获得最小字典序字符串的起点位置。如果有多个位置开始的字符串一样,则输出最小的那个位置,且第一个位置从1开始。
【样例输入】
4
b c a b
【样例输出】
3
【样例说明】
    四个位置取出的字符串分别为bcab,cabb,abbc,bbca,显然最小位置是3
【数据规模】
30%的数据,1<=n<=10
60%的数据,1<=n<=1000
100%的数据,1<=n<=30000

4. 最强素数
(prime.cpp/pas/c)
【题目描述】
小李在你帮助之下轻松战胜了他的同学们,于是满怀恶意的同学出了一个题目来为难小李,作为小李神一样的队友,你又要出力了。
素数41能写成连续6个素数之和:41=2+3+5+7+11+13
现在要求n以内的素数中,能表示为最多连续素数之和的那个数,如果有多个答案,请输出
最大的那个素数。
【输入】
仅一行,一个整数n
【输出】 
输出就一个整数,为所求的能表示为最多连续素数和的那个素数。
【样例输入】
100
【样例输出】
41
【样例说明】
41=2+3+5+7+11+13
【数据规模】
30%的数据,1<=n<=1000
60%的数据,1<=n<=10000
宁波学编程哪里好80%的数据,1<=n<=100000
100%的数据,1<=n<=1000000