ヘリリンã¯äºŒæ¬¡å…ƒå¹³é¢ä¸Šã«ãŠã‘ã‚‹é•·ã•2Lã®ç·šåˆ†ã®å½¢çŠ¶ã‚’ã—ã¦ã„る。
ヘリリンã®ã¾ã‚ã‚Šã«ã¯ã€ç·šåˆ†ã®å½¢çŠ¶ã‚’ã—ãŸã„ãã¤ã‹ã®éšœå®³ç‰©ãŒå˜åœ¨ã—ã¦ã„る。
ヘリリンã¯éšœå®³ç‰©ã«æŽ¥ã™ã‚‹ã¨ä½“力ãŒå‰Šã‚‰ã‚Œã¦ã—ã¾ã†ã€‚
完璧主義ã®ãƒ˜ãƒªãƒªãƒ³ã¯ç„¡å‚·ã§ã‚´ãƒ¼ãƒ«ã™ã‚‹ã“ã¨ã«ã—ãŸã€‚
ヘリリンã¯ä»¥ä¸‹ã®è¡Œå‹•ãŒã§ãる。
- 平行移動
- ヘリリンを表ã™ç·šåˆ†ã®ä¸ç‚¹ã‚’ä¸å¿ƒã¨ã—ã¦ã€å時計周りã«ã¡ã‚‡ã†ã© 180 / r 度ã ã‘回転ã™ã‚‹
ãŸã ã—ã€äºŒæ¬¡å…ƒå¹³é¢ã¯ä¸Šæ–¹å‘ã«y軸をã¨ã‚‹ã€‚
ヘリリンã®ã¾ã‚ã‚Šã«ã€2 点 S, G ãŒã‚る。
始ã‚ã¯ãƒ˜ãƒªãƒªãƒ³ã®ä¸å¿ƒã¯ç‚¹ S ã«ã‚ã£ã¦ã€x軸ã«å¹³è¡ŒãªçŠ¶æ…‹ã«ãªã£ã¦ã„る。
ヘリリンã¯ã€å¹³è¡Œç§»å‹•ã™ã‚‹ã®ã¯å¾—æ„ã ãŒã€å›žè»¢ã™ã‚‹ã®ã¯ä¸å¾—æ„ã§ã‚る。
ã‚ãªãŸã®ä»•äº‹ã¯ã€ãƒ˜ãƒªãƒªãƒ³ãŒä¸å¿ƒã‚’点 S ã‹ã‚‰ç‚¹ G ã¾ã§ç§»å‹•ã•ã›ã‚‹ã¾ã§ã«å¿…è¦ãªã€æœ€å°ã®å›žè»¢è¡Œå‹•ã®å›žæ•°ã‚’求ã‚ã‚‹ã“ã¨ã§ã‚る。
移動ã•ã›ã‚‹ã“ã¨ãŒã§ããªã„å ´åˆã¯ã€ãã®ã“ã¨ã‚‚検出ã›ã‚ˆã€‚
ãŸã ã—ã€ä»¥ä¸‹ã®ã“ã¨ã«æ³¨æ„ã›ã‚ˆã€‚
- ヘリリンã¯ç§»å‹•ã—ãªãŒã‚‰å›žè»¢ã™ã‚‹ã“ã¨ã¯ã§ããªã„。
- ヘリリンãŒå›žè»¢ã™ã‚‹é€”ä¸ã§éšœå®³ç‰©ã«ã¶ã¤ã‹ã‚Šã†ã‚‹å ´åˆã¯ã€å›žè»¢ã™ã‚‹ã“ã¨ã¯ã§ããªã„。
- 障害物ãŒäº’ã„ã«äº¤å·®ã—ã¦ã„ã‚‹ã“ã¨ã¯ã‚り得る。
- 線分ã¯å分å°ã•ã„有é™ã®å¤ªã•ã‚’æŒã¤ã‚‚ã®ã¨ã—ã¦æ‰±ã†ã€‚最後ã®ã‚µãƒ³ãƒ—ルを見よ。
Input
入力ã¯ä»¥ä¸‹ã®å½¢å¼ã§ä¸Žãˆã‚‰ã‚Œã‚‹ã€‚
L r
sx sy
gx gy
n
x11 y11 x12 y12
...
xn1 yn1 xn2 yn2
Lã¯ãƒ˜ãƒªãƒªãƒ³ã®åŠåˆ†ã®é•·ã•ã‚’表ã™ã€‚
rã¯å›žè»¢è§’度を定ã‚ã‚‹ã‚‚ã®ã§ã‚る。
(sx, sy)ã¯ç‚¹ Sã€(gx, gy)ã¯ç‚¹ G ã®åº§æ¨™ã§ã‚る。
nã¯éšœå®³ç‰©ã®æ•°ã‚’表ã™ã€‚
(xi1, yi1)ã¨(xi2, yi2)ã¯i番目ã®éšœå®³ç‰©ã‚’表ã™ç·šåˆ†ã®ç«¯ç‚¹ã§ã‚る。
Constraints
入力ã¯ä»¥ä¸‹ã®åˆ¶ç´„を満ãŸã™ã€‚
- 1 ≤ n ≤ 30
- 2≤ r ≤ 11
- 1 ≤ L ≤ 105
- 入力ã«å«ã¾ã‚Œã‚‹åº§æ¨™ã®å„æˆåˆ†ã¯çµ¶å¯¾å€¤ãŒ105以下
- 入力ã«å«ã¾ã‚Œã‚‹æ•°å€¤ã¯ã™ã¹ã¦æ•´æ•°
- i = 1, . . . , nã«ã¤ã„㦠(xi1, yi1) ≠ (xi2, yi2)
- ヘリリンをスタート地点ã«x軸ã«æ°´å¹³ãªçŠ¶æ…‹ã§é…ç½®ã—ãŸã¨ãã€éšœå®³ç‰©ã¨ã®ï¼ˆç·šåˆ†ã¨ç·šåˆ†ã¨ã®ï¼‰è·é›¢ã¯ 10−3 より大ãã„
- 障害物を表ã™ç·šåˆ†ã®ç«¯ç‚¹ã‚’ã€ä¸¡æ–¹å‘ã« 10−3 ã ã‘延ã°ã—ã¦ã‚‚縮ã‚ã¦ã‚‚解ã¯å¤‰ã‚らãªã„
- Lã‚’ 10−3 ã ã‘増減ã•ã›ã¦ã‚‚解ã¯å¤‰ã‚らãªã„
- 障害物ã®ç·šåˆ†ã‚’liã¨æ›¸ãã“ã¨ã«ã™ã‚‹ã¨ã€1 ≤ i ≤ j ≤ nã§ã‚ã£ã¦ã€liã¨ljã®è·é›¢ãŒ2L以下ã§ã‚るよã†ãªçµ„(i, j)ã¯é«˜ã€…100個
- ゴール地点ã¯éšœå®³ç‰©ã«ä¹—ã£ã¦ã„ã‚‹ã“ã¨ã¯ãªã„
Output
スタート地点ã‹ã‚‰ã‚´ãƒ¼ãƒ«åœ°ç‚¹ã¾ã§ç§»å‹•ã™ã‚‹ãŸã‚ã«å¿…è¦ãªæœ€å°ã®å›žè»¢è¡Œå‹•ã®å›žæ•°ã‚’1è¡Œã«å‡ºåŠ›ã›ã‚ˆã€‚
移動ã•ã›ã‚‹ã“ã¨ãŒã§ããªã„å ´åˆã¯ã€-1ã‚’1è¡Œã«å‡ºåŠ›ã›ã‚ˆã€‚
Sample Input 1
1 2
3 3
2 -1
4
1 0 1 5
0 1 4 1
0 4 6 4
5 0 5 5
Output for the Sample Input 1
1
- ヘリリンを90度回転ã•ã›ã‚‹ã“ã¨ã§ã€éš™é–“を抜ã‘ã‚‹ã“ã¨ãŒã§ãる。


Sample Input 2
1 2
3 3
2 -1
4
1 0 1 5
0 1 6 1
0 4 6 4
5 0 5 5
Output for the Sample Input 2
-1
- ヘリリンã¯å®Œå…¨ã«å›²ã¾ã‚Œã¦ã„ã‚‹ã®ã§ã€ã‚´ãƒ¼ãƒ«ã¾ã§ç§»å‹•ã™ã‚‹ã“ã¨ãŒã§ããªã„。

Sample Input 3
1 4
3 3
7 0
5
1 0 1 5
0 1 6 1
0 4 6 4
8 0 2 5
6 0 4 2
Output for the Sample Input 3
3
- æ–œã‚ã®çµŒè·¯ã‚’通るãŸã‚ã«ã¯ã€3回å時計周りã«å›žè»¢ã—ãªã‘ã‚Œã°ãªã‚‰ãªã„。


Sample Input 4
2 2
4 2
4 5
5
1 5 2 0
0 4 3 4
0 1 8 1
7 0 7 5
8 4 5 4
Output for the Sample Input 4
-1
- ヘリリンã¯éšœå®³ç‰©ã«ã´ã£ãŸã‚ŠæŽ¥ã™ã‚‹ã“ã¨ãŒã§ããªã„ã®ã§ã€éš™é–“ã®ã¨ã“ã‚ã§å›žè»¢ã—ã¦ã‚´ãƒ¼ãƒ«ã¾ã§ç§»å‹•ã™ã‚‹ã“ã¨ã¯ã§ããªã„。