A - Celsius と Fahrenheit
摂氏での温度 n 度を華氏にで表すと ( 9 ÷ 5 × n ) + 32 度となります。
摂氏での温度が与えられるので華氏での温度に変換するプログラムを書いてください。
入力は以下の形式で標準入力から与えられる。
摂氏での温度 n を華氏に変換し、その値を 1 行で出力せよ。
なお、出力の最後には改行をいれること。
出力は絶対誤差あるいは相対誤差の少なくとも片方が 10^{-6} 以下であれば許容される。
Time Limit: 2 sec / Memory Limit: 64 MB
問題文
摂氏での温度が与えられるので華氏での温度に変換するプログラムを書いてください。
入力
n
- 1 行目は、華氏に変換すべき、摂氏の温度 n\ (-273≦n≦1,000) が整数で与えられる。
出力
なお、出力の最後には改行をいれること。
出力は絶対誤差あるいは相対誤差の少なくとも片方が 10^{-6} 以下であれば許容される。
入力例 1
10
出力例 1
50
- (9÷5×10)+32 = 50
入力例 2
33
出力例 2
91.4
- (9÷5×33)+32 = 91.4
- 摂氏での温度が整数であっても、華氏での温度は整数になるとは限りません。
入力例 3
-100
出力例 3
-148
- 9÷5×(-100) +32 = -148
B - 真冬日?真夏日?
夏になると「真夏日」や「熱帯夜」などをよく耳にしますが、実際には次のように予報用語が定義されています。
このとき、上述した猛暑日、真夏日、夏日、熱帯夜、冬日、真冬日はそれぞれ何日ずつあったかを出力してください。
ただし、ここでの「気温」とは、摂氏のことを表します。
複数の予報用語に属する日が存在することに注意してください。
入力は以下の形式で標準入力から与えられる。
猛暑日・真夏日・夏日・熱帯夜・冬日・真冬日の日数を、半角スペース区切りで 1 行で出力せよ。
なお、出力の順序は前述の通りで、最後には改行をいれること。
Time Limit: 2 sec / Memory Limit: 64 MB
問題文
- 猛暑日:最高気温が 35 度以上の日
- 真夏日:最高気温が 30 度以上、35 度未満の日
- 夏日 :最高気温が 25 度以上、30 度未満の日
- 熱帯夜:最低気温が 25 度以上の日
- 冬日 :最低気温が 0 度未満で、最高気温が 0 度以上の日
- 真冬日:最高気温が 0 度未満の日
このとき、上述した猛暑日、真夏日、夏日、熱帯夜、冬日、真冬日はそれぞれ何日ずつあったかを出力してください。
ただし、ここでの「気温」とは、摂氏のことを表します。
複数の予報用語に属する日が存在することに注意してください。
入力
N MT_1 mT_1 MT_2 mT_2 : MT_N mT_N
- 1 行目に、観測日数を表す整数 N\ (1≦N≦3,650) が 1 行で与えられる。
- 2 行目から N+1 行目まで、観測結果が N 行で与えられ、i\ (1≦i≦N) 日目の観測結果は以下の意味を持つ。
- i 日目の最高気温は MT_i 、最低気温は mT_i で、それぞれ摂氏である。
- MT_i と mT_i は、 -90.0 ≦ mT_i ≦ MT_i ≦ 60.0 を満たし、多くても小数第 1 位までしか存在しない。
出力
なお、出力の順序は前述の通りで、最後には改行をいれること。
入力例 1
4 32.2 25.3 36.4 26.4 24.1 18.0 26.0 24.9
出力例 1
1 1 1 2 0 0
- 1 日目は最高気温が 32.2 度で、最低気温が 25.3 度です。この日は真夏日かつ熱帯夜です。
- 2 日目は最高気温が 36.4 度で、最低気温が 26.4 度です。この日は猛暑日かつ熱帯夜です。
- 3 日目は最高気温が 24.1 度で、最低気温が 18.0 度です。この日はいずれにも該当しません。
- 4 日目は最高気温が 26.0 度で、最低気温が 24.9 度です。この日は夏日です。
入力例 2
3 -2 -5.2 2 -0.1 26.0 -0.1
出力例 2
0 0 1 0 2 1
- 1 日目は最高気温が -2 度で、最低気温が -5.2 度です。この日は真冬日です。
- 2 日目は最高気温が 2 度で、最低気温が -0.1 度です。この日は冬日です。
- 3 日目は最高気温が 26.0 度で、最低気温が -0.1 度です。この日は夏日かつ冬日です。
入力例 3
4 15.0 9.5 12.5 10.5 20.5 19.9 15.5 15.5
出力例 3
0 0 0 0 0 0
C - 変わった単位
多くの単位は 10 とその累乗数を元に作られています。ですが、この世の単位にはそうでないものがあります。
有名なものとしては時間に関する単位です。1 分は 60 秒、1 時間は 60 分、1 日は 24時間、などです。
いま、あなたに単位の換算表が与えられます。この換算表を元に、「最も大きい単位」を「最も小さい単位」で表したとき、
どのように表せるかを出力するプログラムを書いてください。例えば、
入力は以下の形式で標準入力から与えられる。
最大の単位を a、最小の単位を b としたとき、係数 M を用いて 1a=Mb の形式で出力せよ。
なお、出力の最後には改行をいれること。
Time Limit: 2 sec / Memory Limit: 64 MB
問題文
有名なものとしては時間に関する単位です。1 分は 60 秒、1 時間は 60 分、1 日は 24時間、などです。
いま、あなたに単位の換算表が与えられます。この換算表を元に、「最も大きい単位」を「最も小さい単位」で表したとき、
どのように表せるかを出力するプログラムを書いてください。例えば、
- 1week = 7day
- 1day = 24hour
- 1hour = 60min
- 1min = 60sec
入力
N large_1 m_1 small_1 large_2 m_2 small_2 : large_{N} m_N small_{N}
- 1 行目は、換算表の行数を表す整数 N\ (1≦N≦200) が 1 行で与えられる。
- 2 行目から、N+1 行目までの N 行で、換算表が与えられる。
- i\ (1≦i≦N) 行目において、単位 large_i、係数m_i、単位small_i が半角空白区切りで与えられる。
- i\ (1≦i≦N) 行目において、1*large_i = m_i*small_i が成立する。
- 単位名 large_i と small_i はいずれも 10 文字以下の半角英小文字から構成される。
- 1 番大きい単位を 1 番小さい単位で表したとき、係数 M は 10^9 を超えない整数である。
- 換算表に記載される単位は、必ず別の大きさを持つことが保証されている。つまり、同じ大きさで別名の単位は存在しない。
- 換算表に記載される単位から、必ず最大・最小の単位を特定できることが保証されている。
- 換算表に記載される単位は順不同であり、必ずしも大きな単位から順に記載されているとは限らない。
- また、i 行目の入力が隣接する単位との関係を示すとは限らない。
- 例えば、hour > min > sec という順序関係があるとき、 hour 3600 sec といった入力もありうる。
- ただし、換算表には矛盾するような記載はない。
出力
なお、出力の最後には改行をいれること。
入力例 1
4 week 7 day day 24 hour hour 60 min min 60 sec
出力例 1
1week=604800sec
- 1week = 7*24*60*60sec = 604800sec
入力例 2
3 sic 29 cou gal 493 cou gal 17 sic
出力例 2
1gal=493cou
- 1gal = 17*29cou = 493cou
- 2 行目に、1gal = 493cou が与えられていて、実は演算の必要がないです。
- 2 行目は、入力セクションの 6 で記述したように、隣接する単位との関係を示したものではありません。
入力例 3
5 chou 360 shaku jou 100 sun ken 60 sun li 2160 ken li 12960 shaku
出力例 3
1li=129600sun
- 1li = 2160*60sun = 129600sun
- 1 行目、2 行目、5 行目のように、演算に不要な入力が与えられることもあります。
D - きんいろクッキー
高橋くんのお仕事は、クッキー工場で金色のクッキーをクリックするだけの簡単なお仕事である。
クッキー工場は次の性質を持っている。
となる。
高橋君は皮算用が好きである。0 秒からはじめて、出現する金色のクッキーをすべて出現時にクリックした場合、
T-1 秒目のクッキー生成が終わった時点で、生成された通常のクッキーの総数の期待値を求めよ。
入力は以下の形式で標準入力から与えられる。
T-1 秒目のクッキー生成が終わった時点で、生成された通常のクッキーの総数の期待値を1行で出力せよ。
なお、出力の最後には改行をいれること。
出力は絶対誤差あるいは相対誤差の少なくとも片方が 10^{-3} 以下であれば許容される。
Time Limit: 2 sec / Memory Limit: 64 MB
問題文
クッキー工場は次の性質を持っている。
- 通常のクッキーと金色のクッキーが生成される。生成される時刻は整数秒である。
- 通常のクッキーは 1 秒につき 1 枚だけ生成される。
- 金色のクッキーは、通常のクッキーの生成条件とは別に 1 秒につき確率 P で 1 枚だけ出現する。
- クリックされた金色のクッキーは消滅し、N 通りの効果のうち 1 個の効果をもたらす。
- 効果 i は確率 q_i で起こり、その次の秒に生成される通常のクッキーから t_i 回、生成される通常のクッキーの個数を x_i 倍する。
- 上記の効果は重複する。たとえば、ある秒で効果 i が 2 回、効果 j が 1 回継続している場合、その秒でのクッキーの生成数は x_i^2*x_j 個となる。
秒 | 0 | 1 | 2 | 3 | 4 | 5 |
枚数 | 1 | 2 | 6 | 2 | 1 | 1 |
高橋君は皮算用が好きである。0 秒からはじめて、出現する金色のクッキーをすべて出現時にクリックした場合、
T-1 秒目のクッキー生成が終わった時点で、生成された通常のクッキーの総数の期待値を求めよ。
入力
T N P q_1 x_1 t_1 q_2 x_2 t_2 : q_N x_N t_N
- 1 行目は、クッキーを生成する時間を表す整数 T\ (1≦T≦100,000)、クッキーが持つ効果の種類を表す整数 N\ (1≦N≦10,000)、金色のクッキーが出現する確率 P\ (0≦P≦1) が半角空白区切りで与えられる。
- 2 行目から N 行は、金色のクッキーをクリックすることで起こる i 番目の効果を表す。その効果が表れる確率 q_i\ (0≦q_i≦1)、その効果の倍率を表す整数 x_i\ (1≦x_i≦1,000)、その効果の持続時間を表す整数 t_i\ (1≦t_i≦100,000) が、スペース区切りで与えられる。
- q_i の和は 1 となる。
- 正しい出力が 10^{100} を上回ることはない。
- 与えられる小数の入力は全て、多くても小数第 6 位までしか存在しない。
出力
なお、出力の最後には改行をいれること。
出力は絶対誤差あるいは相対誤差の少なくとも片方が 10^{-3} 以下であれば許容される。
入力例 1
10 2 0.5 0.5 10 1 0.5 2 1
出力例 1
32.5
- 最初の 1 秒は、必ず 1 枚のクッキーが生成されます。
- 2 秒目からは、10 枚のクッキーが生成される確率が 25%、2 枚のクッキーが生成される確率が25%なので、平均して毎秒 3.5 枚のクッキーが生成されます。
入力例 2
100000 3 0.01 0.48175 7 77 0.033325 777 13 0.484925 1 100
出力例 2
16540797.4844572
入力例 3
300 1 1 1 2 1000
出力例 3
2037035976334490000000000000000000000000000000000000000000000000000000000000000000000000000
- 出力は指数表記にしてはいけません。誤差が許容される点にも注意してください。