在一個晴朗的午後,突然烏雲密布,下起了大雨,這場雨跟平常有些不同。首先,這場雨會穿透所有固體,落到世界上的每個地方;其次,這場雨的顏色色號是#67A67A。碰到這場雨的人全部都會被「字典樹病毒(trie virus, aka tri.)」感染,被感染的人會通通變成三角形(triangle, aka tri.),整個世界也變成了一個二維平面。
也因為大家都變成三角形了,區分身分變得十分困難,因此出現了一套系統,透過神奇的編碼方式,將每個人原本的居住地的三個頂點座標紀錄並轉換成一個字串,作為身份辨識使用,稱為身分辨識碼。
Dong太電了!他想要在知道一個人的身分辨識碼後就判斷出一個人的長相。每個三角形的長相由七個數值決定,分別是三個角的角度、三個邊的長度和顏色。他寫了一個程式讓他可以輸入身分辨識碼後獲得那個三角形的三個邊長和角度以及顏色。
回到正題,因為那場大雨,Claire和Windsor也變成了三角形,Claire終於有機會完成變成溫莎的心願了。但Claire只大概知道Windsor的長相。現在Claire稍微更換了一下自己的長相,並拿到了新的符合他的長相的身分辨識碼。現在你能知道Claire和Windsor的身分辨識碼,也有Dong的幫忙,請幫忙判斷他們兩人有多像。
Dong太電了!他已經幫你將Claire和Windsor的現在的身分辨識碼轉換成長相了!
共會有兩行輸入,第一行是Claire的長相,第二行是Windsor的長相。
對於第 $i$ 行先有三個整數 $a_i, b_i$ 和 $c_i$ ,分別代表三條邊的邊長;接著有六個整數 $A_{1_i}, A_{2_i}, B_{1_i}, B_{2_i}, C_{1_i}$ 和 $C_{2_i}$ ,$\frac{A_{1_i}}{A_{2_i}}$為 $\angle A$的餘弦值,$B, C$同理。最後有一個字串 $S_i$,代表顏色(HEX)。
$\forall i, $
$1 \le a_i \le b_i \le c_i \le 2 \times 10 ^ 9$
$1 \le A_{1_i}, A_{2_i}, B_{1_i}, B_{2_i}, C_{1_i}, C_{2_i} \le 8\times 10 ^ {18}$
$-1 < \frac{A_{1_i}}{A_{2_i}}, \frac{B_{1_i}}{B_{2_i}}, \frac{C_{1_i}}{C_{2_i}} < 1$
$|S_i| = 6$
保證兩者皆為二維平面上的三角形
色碼未包含#
根據Claire和Windsor的長相:
若兩三角形符合國中數學定義中的全等且顏色相同,輸出coooooooool
若兩三角形符合國中數學定義中的全等但顏色不同,輸出saaaaaaaame
若兩三角形符合國中數學定義中的相似,輸出sssssssssssssssssssssssss
若以上皆非,輸出owlliscuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuute
3 4 5 32 40 18 30 0 24 000000 3 4 5 32 40 18 30 0 24 000000
coooooooool
3 4 5 32 40 18 30 0 24 000000 3 4 5 32 40 18 30 0 24 FFFFFF
saaaaaaaame
3 4 5 32 40 18 30 0 24 000000 6 8 10 128 160 72 120 0 96 000000
sssssssssssssssssssssssss
3 4 5 32 40 18 30 0 24 000000 2 3 4 21 24 11 16 -3 12 000000
owlliscuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuute
這裡講一下可能會用到的數學:
在C++中,可以使用acos()將餘弦值轉換為弧度(請記得引入<cmath>)。
在Python中,可以使用math.acos()將餘弦值轉換為弧度(請記得匯入math)。
弧度乘上 $\frac{180}{\pi}$ 可轉換成角度。
在C++中,除了<cmath>之外,<numeric>也提供了許多好用的數學運算函式,如gcd()用來取最大公因數、lcm()用來取最小公倍數等。
但是注意到gcd()和lcm()一次只能取兩個參數,那如何計算多個數的最大公因數或最小公倍數呢?
我們可以運用最大公因數的結合律!也就是 $gcd(gcd(a, b), c) = gcd(a, gcd(b, c)) = gcd(a, b, c)$!而又因為對於任一群正整數而言,其最大公因數 $\times$ 最小公倍數 $=$ 所有數字的乘積!因此也能求出最小公倍數了!
而在Python中,同樣能取最大公因數和最小公倍數(math.gcd()和math.lcm()),並且可以同時計算多個數字的結果,不需要像C++一樣分開求。
| No. | Testdata Range | Constraints | Score |
|---|---|---|---|
| 1 | 0~3 | 範例測資 | 5 |
| 2 | 4~15 | 兩三角形全等 | 30 |
| 3 | 0~50 | 無特別限制 | 65 |