用户:
方圆三角查看: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%。