C - 変わった単位 Editorial

Time Limit: 2 sec / Memory Limit: 64 MB

問題文

多くの単位は 1010 とその累乗数を元に作られています。ですが、この世の単位にはそうでないものがあります。
有名なものとしては時間に関する単位です。11 分は 6060 秒、11 時間は 6060 分、11 日は 2424時間、などです。

いま、あなたに単位の換算表が与えられます。この換算表を元に、「最も大きい単位」を「最も小さい単位」で表したとき、
どのように表せるかを出力するプログラムを書いてください。例えば、
  • 1week1week == 7day7day
  • 1day1day == 24hour24hour
  • 1hour1hour == 60min60min
  • 1min1min == 60sec60sec
と換算表が与えられたとき、1week1week == 604800sec604800sec と出力してください。

入力

入力は以下の形式で標準入力から与えられる。
NN
large1large_1 m1m_1 small1small_1
large2large_2 m2m_2 small2small_2
:
largeNlarge_{N} mNm_N smallNsmall_{N}
  1. 11 行目は、換算表の行数を表す整数 N (1N200)N\ (1≦N≦200)11 行で与えられる。
  2. 22 行目から、N+1N+1 行目までの NN 行で、換算表が与えられる。
    • i (1iN)i\ (1≦i≦N) 行目において、単位 largeilarge_i、係数mim_i、単位smallismall_i が半角空白区切りで与えられる。
    • i (1iN)i\ (1≦i≦N) 行目において、1largei1*large_i == mismallim_i*small_i が成立する。
    • 単位名 largeilarge_ismallismall_i はいずれも 1010 文字以下の半角英小文字から構成される。
  3. 11 番大きい単位を 11 番小さい単位で表したとき、係数 MM10910^9 を超えない整数である。
  4. 換算表に記載される単位は、必ず別の大きさを持つことが保証されている。つまり、同じ大きさで別名の単位は存在しない。
  5. 換算表に記載される単位から、必ず最大・最小の単位を特定できることが保証されている。
  6. 換算表に記載される単位は順不同であり、必ずしも大きな単位から順に記載されているとは限らない。
    • また、ii 行目の入力が隣接する単位との関係を示すとは限らない。
    • 例えば、hour > min > sec という順序関係があるとき、 hour 3600 sec といった入力もありうる。
    • ただし、換算表には矛盾するような記載はない。

出力

最大の単位を aa、最小の単位を bb としたとき、係数 MM を用いて 1a1a==MbMb の形式で出力せよ。
なお、出力の最後には改行をいれること。

入力例 1

Copy
  1. 4
  2. week 7 day
  3. day 24 hour
  4. hour 60 min
  5. min 60 sec
4
week 7 day
day 24 hour
hour 60 min
min 60 sec

出力例 1

Copy
  1. 1week=604800sec
1week=604800sec
  • 1week1week == 7246060sec7*24*60*60sec == 604800sec604800sec

入力例 2

Copy
  1. 3
  2. sic 29 cou
  3. gal 493 cou
  4. gal 17 sic
3
sic 29 cou
gal 493 cou
gal 17 sic

出力例 2

Copy
  1. 1gal=493cou
1gal=493cou
  • 1gal1gal == 1729cou17*29cou == 493cou493cou
  • 22 行目に、1gal1gal == 493cou493cou が与えられていて、実は演算の必要がないです。
  • 22 行目は、入力セクションの 66 で記述したように、隣接する単位との関係を示したものではありません。

入力例 3

Copy
  1. 5
  2. chou 360 shaku
  3. jou 100 sun
  4. ken 60 sun
  5. li 2160 ken
  6. li 12960 shaku
5
chou 360 shaku
jou 100 sun
ken 60 sun
li 2160 ken
li 12960 shaku

出力例 3

Copy
  1. 1li=129600sun
1li=129600sun
  • 1li1li == 216060sun2160*60sun == 129600sun129600sun
  • 11 行目、22 行目、55 行目のように、演算に不要な入力が与えられることもあります。


2025-04-06 (Sun)
15:00:40 +00:00