有一根围绕原点 O 顺时针旋转的棒 OA,初始时指向正上方(Y 轴正向)。 在平面中有若干物件,第 i 个物件的坐标为 (xi , yi) ,价值为 zi。当棒扫到某个物件时,棒的长度会瞬间增长 zi,且物件瞬间消失(棒的顶端恰好碰到物件也视为扫到),如果此时增长完的棒又额外碰到了其他物件,也按上述方式消去 (它和上述那个点视为同时消失)。
如果将物件按照消失的时间排序,则每个物件有一个排名,同时消失的物件排名相同,请输出每个物件的排名,如果物件永远不会消失则输出 −1。
输入第一行包含两个整数 n、L,用一个空格分隔,分别表示物件数量和棒的初始长度。
接下来 n 行每行包含第三个整数 xi , yi ,zi。
5 2 0 1 1 0 3 2 4 3 5 6 8 1 -51 -33 2
1 1 3 4 -1
对于 30% 的评测用例,1 ≤ n ≤ 500 ;
对于 60% 的评测用例,1 ≤ n ≤ 5000 ;
对于所有评测用例,1 ≤ n ≤ 200000,−109 ≤ xi , yi ≤ 109,1 ≤ L,zi ≤ 109 。
第十三届蓝桥杯大赛软件赛省赛 C/C++ 研究生组 |
|
---|---|
C题 |
|
D题 | |
E题 | |
F题 | |
G题 | |
H题 | |
I题 | |
J题 |
注意事项:
1. 对于编程题目,要求选手给出的解答完全符合 GNU C/C++ 标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的 API。
2. 代码中允许使用 STL 类库。
3. main 函数结束必须返回 0。
4. 所有依赖的函数必须明确地在源文件中 #include
5. 提交时,注意选择使用C或C++语言。
比赛结束也可以提交,见题集2022年第十三届蓝桥杯大赛软件类省赛C/C++研究生组真题