镜子反射
时间限制:10s 空间限制:259MB
题目描述
输入格式
第一行s,为立方镜子的边长。(1<=s<=2^15) 第二行m,为镜子个数。(1<=m<=200000) 下接m行,每行四个数描述一面镜子 x,y,z,d表示在坐标(x,y,z)的点上有一面方向为d的镜子。(0<=x,y,z<=s,0<=d<=5,保证不会有两个镜子坐标相同)
输出格式
共6组,每组两行,按顺序分别输出从面0到面5的出射光线条数,以及这部分光线的总反射次数。
样例输入
5 4 4 4 0 0 1 3 0 1 1 1 0 0 4 1 0 1
样例输出
0 0 0 0 1 1 1 1 34 0 0 0 注:我们认为每个平板镜子都是无限薄的,即如果有一束光线从一个镜子的侧面射入,它会方向不变的射出。
提示
样例解释: 2号面射出去了一根光线:从(4,0,0)落下击中(4,1,0)处的镜子然后射出去。反射次数为1 3号面射出去了一根光线:从(1,0,0)落下击中(1,1,0)处的镜子然后射出去。反射次数为1 剩余的的36-2=34条光线没有经过任何反射直接从4号面射出。 (1,3,0)处的镜子与(4,4,0)处的镜子没被用到。
题目来源
模拟题系列