猫史档案馆


一道编程题(编写程序)

用户:方圆三角方圆三角查看:0 回复:0 评论:0 创建时间:2023-07-26T12:38:20


此题纯为自编,若有相符,纯属巧合。

 

小方:(看完题后)运动题……你干脆去教体育吧……

小圆:好吧,我改,改为“一道编程题(跑步)”。

小方:********************

 

——————正文开始——————

题目名:跑步(run)

建议用时:30分钟(出题人用了30分钟)

满分:100分(5个检查点)

判题方法:文本比较,SPJ

提交代码:C++

 

注意:只能提交C++代码!!!

 

【题目背景】

出题人方圆三角举办的跑步比赛开始了!本次的参赛者有等边三角形(又称正三边形)、正方形(又称正四边形)、正五边形、正六边形、正七边形、正八边形、………………、正一百零一边形,以及圆(共100名运动员)。

每局比赛将抽取一些运动员经行比赛,每位运动员在一局比赛里都有自己的编号(在不同局的比赛的编号不一定相同,是每局比赛开始时定的)。

出题人:接下来是1米短跑……

运动员:???

(上面的东西不必看)

调皮的0想提前知道谁得第一名,便请1帮忙做一个程序,计算谁第一。

 

【题目描述】

单局跑步比赛共有end米,共有p名运动员,每个运动员的编号为1~p,终点在第end米。

每个运动员按编号,从1开始到p,再从1开始,按照周期表走步数。

有两个周期:d1和d2,长度分别为d1r和d2r,d1n和d2n是一个变量,初始值为0,为周期表的下标。

d1里有d1r个1~6的数,d2里有d2r个1~6的数。

每走一次,d1n加1,d2n加1,若超出d1r或d2r,则回到0。

每轮每个运动员走的步数就是d1[d1n]+d2[d2n]的结果。

特别地,如果d1[d1n]==d2[d2n],则可以再跑一次。

如裹任何一名运动员的步数超过end,则结束比赛。

 

【输入格式】

从run.in读入数据。

输入包含6行:

第1行,输入p。

第2行,输入end。

第3行,输入d1r。

第4行,输入d2r。

第5行,输入d1r个1~6的数,为d1[i](i为遍历变量)。

第6行,输入d2r个1~6的数,为d2[i](i为遍历变量)。

 

【输出格式】

写出到run.in文件。

输出包含1+p行。

第1行,输出第一名。

接下来p行,按照跑的米数排名,输出编号和米数,中间用空格隔开,米数相等,则编号小的在前。

 

【输入与输出样例】

请注意,你的输入输出,应写成文件。

#1:

输入:

2
10
2
3
1 2
1 2 3

输出:

1
1 10
2 0

 

#2:

输入:

3
100 
6
9
1 3 5 2 4 6 
2 4 6 1 3 5 2 4 6 

输出:

 

【样例解释】

#1:

d1:1 2

d2:1 2 3

首先,1号和2号都在0点(d1n=0,d2n=0),

然后,1号走1+1=2步(d1n=0,d2n=0),

因为1==1,所以1号再走一次,是2+2=4步,此时1号在6点(d1n=1,d2n=1)。

因为2==2,所以1号再走一次,是1+3=4步,此时1号在10点,抵达终点(d1n=0,d2n=2)。

 

【限制】

限时:3s

限内存:128KB

限输出行数:1+p行

 

【数据规模与运算】

对于100%的数据,保证:

1<=p<=100

1<=end<=10000

1<=d1r,d2r<=30

1<=d1[d1n],d2[d2n]<=6

 

【提示】

如果你不知道这道题怎么做,至少你输出了谁得第一名,也能得单个检查点的50%。

但是请注意:为了防止你输出错误,请填充几个整数,如【输入输出样例】中得#1,你可以输出:

1
0 0
0 0

以获得单个检查点的50%。


回复

上一页1 页 / 共 0下一页