教师编程大赛
▲ 关于本次比赛:
本次比赛旨在营造信息学奥赛的开展氛围,促进金华市信息学奥林匹克竞赛的积极发展。比赛难度与NOIP复赛普及组基本持平。为使评测规范严谨,我们将采用信息学奥赛复赛的形式,评测方式采用cena自动评测系统,故程序中必须采用文件的输入输出方式,请参考文件输入输出代码的说明,务必使用文件输入输出。
本次比赛旨在营造信息学奥赛的开展氛围,促进金华市信息学奥林匹克竞赛的积极发展。比赛难度与NOIP复赛普及组基本持平。为使评测规范严谨,我们将采用信息学奥赛复赛的形式,评测方式采用cena自动评测系统,故程序中必须采用文件的输入输出方式,请参考文件输入输出代码的说明,务必使用文件输入输出。
▲ 文件提交细节:
(1)请确保你的源程序严格按照题目规定的名称命名。(2)请在桌面新建一个以你自己的名字命名的文件夹(3)将4个题目的源程序放入该文件夹中。
(1)请确保你的源程序严格按照题目规定的名称命名。(2)请在桌面新建一个以你自己的名字命名的文件夹(3)将4个题目的源程序放入该文件夹中。
▲ 试题概览:
试题名称 | 为英雄募捐 | 最安全的高度 | 为英雄的献花 | 英雄搜救行动 |
源程序名称 | money.pas/c/cpp | high.pas/c/cpp | flower.pas/c/cpp | search.pas/c/cpp |
输入文件名 | money.in | high.in | flower.in | search..in |
输出文件名 | money.out | high.out | flower.out | search.out |
ut时限 | 1s | 1s | 1s | 1s |
▲ 关于竞赛中文件输入输出代码的说明:
例:从输入文件test.in 中读入两个整数a,b,将它们的和输出到输出文件test.out中
例:从输入文件test.in 中读入两个整数a,b,将它们的和输出到输出文件test.out中
(1)pascal语言:
Program Test;
Program Test;
Var a, b: integer;
Begin
assign(input, 'test.in'); //关联输入文件
reset(input);//打开输入文件
reset(input);//打开输入文件
assign(output, 'test.out'); //关联输入文件
rewrite(output); //打开输出文件
rewrite(output); //打开输出文件
readln(a, b);
writeln(a+b);
close(input);//关闭输入文件
close(output);//关闭输出文件
End.
(2)C语言
#include <stdio.h>
#include <stdio.h>
main () {
FILE *fin = fopen ("test.in", "r");//设置并打开输入文件
FILE *fout = fopen ("test.out", "w");//设置并打开输出文件
int a, b;
fscanf (fin, "%d %d", &a, &b);
fprintf (fout, "%d\n", a+b);
exit (0);
}
[题目背景]:
20XX年11c编程必背100题月30日,英雄军官孟祥斌为了施救一名轻生女子,毫不犹豫地从近10米高的通济桥上跳入寒冷的江水,女子得救了,而他却献出了年轻的生命.离开了妻子和3岁的女儿,离开了年迈多病的父母,离开了他那贫苦的家庭,离开了所有深爱着他的人们。
1. 为英雄募捐
(money.pas/c/cpp)
(money.pas/c/cpp)
[问题描述]:
英雄事迹消息很快传遍了大江南北,感动了整个城市。在得知孟祥斌的家庭困难后,广大市民积极为英雄募捐。在收到众多捐款后,志愿者们对收到的捐款进行了实时的统计.现请你对最后的捐款总数进行确认.
[输入数据]:(输入文件money.in)
输入文件money.in共有n+1行,(0<n<=1000)
第一行为一个整数n,表示共有n笔捐款.
接下的n行,每行两个整数x,y,用空格隔开,x表示捐款的面值,y表示该面值人民币的张数
第一行为一个整数n,表示共有n笔捐款.
接下的n行,每行两个整数x,y,用空格隔开,x表示捐款的面值,y表示该面值人民币的张数
(其中0<x,y<=100,并假设面值可以为1~100的任意整数)
[输出数据]:(输出文件money.out)
输出数据money.out共一行,为一个整数z,表示捐款的总额.
[输入样例]
4
20 2
50 1
10 3
20 1
[输出样例]
140
2. 最安全的高度
(high.pas/c/cpp)
(high.pas/c/cpp)
[问题描述]:
除了寒冷的江水外,桥面和江面巨大的落差也是一个极大的考验,然而英雄并没有被这个高度吓到,不顾妻子的劝阻毅然跳入水中。如果英雄从桥面上有一个最低的点跳下去,从而把危险程度降到最低,那英雄就很可能不会离我们而去.
除了寒冷的江水外,桥面和江面巨大的落差也是一个极大的考验,然而英雄并没有被这个高度吓到,不顾妻子的劝阻毅然跳入水中。如果英雄从桥面上有一个最低的点跳下去,从而把危险程度降到最低,那英雄就很可能不会离我们而去.
假设把桥面上有n个不同的点,编号为1到n。对于任意一个点i,有一个确定的值wi,表示该点与江面的高度差。我们希望英雄能瞬间知道哪个点最低,并瞬间移动到这个点。现请你通过编程快速到最低点
[输入数据]:(输入文件high.in)
输入文件high.in共有2行
第一行为一个整数n,(1<=n<=10000)表示有n个点。
接下来一行有n个用空格隔开的正整数,依次表示第1个到第n个点的高度 wi。
(0<wi<=1000000)
[输出数据]:(输出文件high.out)
输出文件high.out共一行,输出一个整数s,表示搜救的最小危险值
[输入样例]
4
7 3 2 9
3. 为英雄献花
(flower.pas/c/cpp)
(flower.pas/c/cpp)
[问题描述]:
通济桥上摆满了市民们送来的菊花和花圈,寄托着广大市民对英雄的思念之情.
现场自愿者们为了能腾出地方摆放不断送来的菊花和花圈,需要整理得得更加整齐.
考虑这样一个序列”110100100010000……”,1代表菊花,0代表花圈,
该序列就是由”1” + ”10”+”100”+”1000”+……相连而成的.由于菊花和花圈实在太多了,
请帮忙编写一个程序,告诉志愿者第i个位置应该摆放菊花还是花圈.
[输入数据]:(输入文件flower.in)
输入文件flower.in共有两行:
第一行:一个整数n,表示测试点的个数;(N < =1000)
第二行:n个整数(每个数确保<=104);相邻两个数间用空格隔开
[输出数据]:(输出文件flower.out)
输出文件flower.out 共有n行
对应每个测试点,每行输出一个数据0或者1
[输入样例]
3
1 3 4
[输出样例]
1
0
1
4. 英雄搜救行动
(search.pas/c/cpp)
(search.pas/c/cpp)
[问题描述]:
寒冷的江水对英雄的体力是一个极大的考验,由于势单力薄,英雄最终献出了宝贵的生命.如果当时有更多的解放军官兵进行搜救,也许结局就不会这样让人心痛了.
现假设共有n个解放军士兵在通济桥上待命搜救,当然事情已经不可能重来了,所以我们添加了一些限制条件.搜救过程必须严格满足以下3个条件条件
(1) 每个士兵搜救都有一个开始时间Si和一个结束时间Fi
(2) 一个士兵一旦开始搜救,就必须把这次搜救完成,即中途不能停止
(3) 每次只能有一位士兵在河中施救,其余士兵待命
由于以上条件的限制,可能有些士兵没有机会下水搜救.为了达到尽量好的搜救效果,当然是下水搜救的士兵越多越好.请根据输入数据,计算出最多有多少士兵下水搜救.
[输入数据]:(输入文件search.in)
输入文件search.in共有n+1行
第一行为一个整数n (n<=500),表示共有n个士兵待命.
以下n行,每行有2个用空格隔开的整数,Si和Fi,(0<=Si<=Fi<=32767),表示第i个士兵搜救的开始时间和结束时间
[输出数据]:(输出文件search.out)
输出文件search.out共一行,为一个整数,表示最多的下水搜救的士兵数量
[输入样例]
3
0 2
0 1
1 3
[输出样例]
2
[样例说明]
若第1个士兵下水搜救,则另外2个士兵都没机会下水
若第2个士兵第0秒开始搜救,第1秒结束,则第3个士兵第1秒开始搜救,第3秒结束
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论