#P1596. Gears on a Board

Gears on a Board

本题没有可用的提交语言。

题目翻译:棋盘上的齿轮

题目描述

一家名为“Gears R Us”的工程公司需要一个程序来评估齿轮在棋盘上的运行情况。棋盘是一个二维安装平面,齿轮具有两层齿(靠近棋盘的内半径和远离棋盘的外半径)。齿轮绕其圆心旋转,并通过接触相邻齿轮的内半径或外半径以相等的线速度相互作用。角速度对于同一齿轮的内半径和外半径是相同的。

棋盘是一个300×300的正方形网格,每个安装孔间距为1厘米。棋盘的左下角坐标为(x=1, y=1),右上角为(x=300, y=300)。齿轮只能安装在网格点上,其内外半径均为1到100的整数。电机齿轮是唯一的初始动力源(从棋盘后方驱动),其旋转规则与其他齿轮一致。以下示意图展示了一个示例配置:

在上述示例中,电机位于坐标(20, 100),内外半径均为5厘米,逆时针旋转(转速-300 RPM)。电机接触齿轮1的内半径,齿轮1的内半径接触齿轮2和齿轮3的内半径,齿轮3的外半径接触齿轮4的外半径,齿轮4的内半径接触齿轮5的内半径。通过计算可知:

  • 齿轮1顺时针旋转,转速83.33 RPM;
  • 齿轮2逆时针旋转,转速187.50 RPM;
  • 齿轮3逆时针旋转,转速150.00 RPM;
  • 齿轮4顺时针旋转,转速187.50 RPM;
  • 齿轮5逆时针旋转,转速22.50 RPM。

尽管此示例未包含异常情况,但“Gears R Us”需要程序检测两种错误条件:

  1. 齿轮重叠错误:两个或多个齿轮的内半径或外半径发生重叠(即中心距小于两半径之和)。
  2. 旋转冲突错误:任何齿轮被两个或多个不同的速度驱动(即同一齿轮通过不同接触路径计算出的转速或方向不一致)。

此外,若存在齿轮转速为0(闲置),需输出警告信息“Warning -- Idle Gear”。

输入格式

输入包含多个测试用例,每个用例格式如下:

  1. 第一行:6个整数,依次为:
    • 电机的坐标(x, y)(1 ≤ x, y ≤ 300);
    • 电机的内半径(ir)和外半径(or)(1 ≤ ir, or ≤ 100);
    • 电机的转速(AV),单位为RPM(绝对值1 ≤ |AV| ≤ 1000,负数表示逆时针旋转,正数表示顺时针旋转);
    • 齿轮数量NG(1 ≤ NG ≤ 20,不含电机)。
  2. 接下来NG行:每行4个整数,依次为第i个齿轮(i从1到NG)的坐标(x, y)、内半径(ir)和外半径(or)(1 ≤ ir, or ≤ 100)。

输出格式

对于每个测试用例,输出格式如下:

无错误且无警告时:
  • 第1行:Simulation #X,其中X为测试用例编号(从1开始),左对齐,起始于第13列。
  • 第2行至NG+1行:每行描述一个齿轮,格式为:
    • 齿轮编号:右对齐,占1-2列;
    • 冒号:位于第3列;
    • 旋转方向:L(逆时针)或R(顺时针),位于第5列;
    • 转速:保留两位小数,左对齐,起始于第7列。
  • 若存在转速为0的齿轮,该行替换为: i: Warning -- Idle Gear(i为齿轮编号,起始于第5列)。
发生错误时:
  • 第1行:Simulation #X
  • 第2行:根据错误类型输出以下内容之一(左对齐,起始于第1列):
    • Error -- Overlapping Gears(齿轮重叠错误,优先检测);
    • Error -- Conflicting Gear Rotation(旋转冲突错误)。
其他要求:
  • 每个测试用例的输出后必须包含一个空行。

完整输入输出示例

输入数据1

20 100 5 5 -300 5  
43 100 18 10  
43 74 8 4  
71 100 10 15  
94 100 3 8  
122 100 25 6  
20 100 5 5 -300 5  
43 100 18 10  
43 74 8 4  
71 100 10 10  
89 100 3 8  
105 100 25 6  
20 100 5 5 -300 5  
43 100 18 10  
43 74 8 4  
71 100 10 10  
89 100 3 8  
125 100 25 6  

输出数据1

Simulation #1  
 1: R 83.33  
 2: L 187.50  
 3: L 150.00  
 4: R 281.25  
 5: L 33.75  

Simulation #2  
Error -- Overlapping Gears  

Simulation #3  
 1: R 83.33  
 2: L 187.50  
 3: L 150.00  
 4: R 187.50  
 5: Warning -- Idle Gear