A - CODE FESTIVAL 2014

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

このコンテスト名は、CODE FESTIVAL 2014です。

しかし、物覚えが悪い高橋君は、いつも、2014を付け忘れてしまいます。

そこで、高橋君は、文字列に自動的に2014を付け加えるソフトを作ろうと思いました。

文字列 S が与えられます。文字列 S に、2014を付け加えた文字列を出力してください。

なお、半角スペースなどを付ける必要はありません。


入力

入力は以下の形式で標準入力から与えられる。

S
  • 1 行目には、1 つの文字列 S (1 ≦ |S| ≦ 20) が与えられる。
  • S に含まれる文字は、全て大文字アルファベットであることが保障されている。

出力

文字列 S に、2014を付け加えた文字列を出力を 1 行で出力せよ。出力の末尾には改行をいれること。


入力例1

CODEFESTIVAL

出力例1

CODEFESTIVAL2014

CODEFESTIVAL2014を付けると、CODEFESTIVAL2014になります。入力にスペース等が与えられることはありません。


入力例2

CHOKUDAI

出力例2

CHOKUDAI2014
B - とても長い文字列

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

文字列 S は、文字列 A を、10^{100} 個連結させた文字列です。

文字列 SB 文字目の文字は何かを出力しなさい。


入力

入力は以下の形式で標準入力から与えられる。

A
B
  • 1 行目には、文字列 A (1 ≦ |A| ≦ 50) が与えられる。
  • 文字列 A は、小文字アルファベットのみで構成されていることが保障されている。
  • 2 行目には、整数 B (1 ≦ B ≦ 1,000,000,000) が与えられる。

部分点

  • 1 ≦ B ≦ 100,000 の全てのテストケースに正解すると、 20 点が与えられる。
  • 残りの全てのテストケースに正解すると、さらに 80 点が与えられる。

出力

文字列 SB 文字目の文字を 1 行で出力せよ。出力の末尾には改行をいれること。


入力例1

abc
7

出力例1

a

文字列 S は、abcabcabcabc… と続く文字列です

よって、7 文字目は a となります。


入力例2

bbb
9

出力例2

b

文字列 S に含まれる全ての文字は b なので、9 文字目も b となります。


入力例3

kljhasdfkjahfadfakhsdfaklh
1000000000

出力例3

h

大きな整数が入力されることがあることに注意してください。

C - 2月29日

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

高橋君は、西暦 A 年の元旦に地球で生まれ、 西暦 B 年の大晦日に地球を去る予定です。

高橋君は、 地球で何回 229 日を過ごせるかを調べようと思いました。

229 日があるのはうるう年だけであり、うるう年であるかどうかは、以下のルールで決定されます。

  • 西暦年が 4 で割り切れる年はうるう年である。
  • ただし、西暦年が 100 で割り切れる年はうるう年ではない。
  • ただし、西暦年が 400 で割り切れる年はうるう年である。

高橋君が、 229 日を過ごせる回数を出力してください。なお、高橋君は非常に長生きであることがあることに注意してください。


入力

入力は以下の形式で標準入力から与えられる。

A B
  • 1 行目には、高橋君が生まれた年、及び地球を去る年を表す整数 A, B (1 ≦ A ≦ B ≦ 2,000,000,000) が与えられる。

部分点

  • 1 ≦ A ≦ B ≦ 3,000 の全てのケースに正解すると、 25 点が与えられる。
  • 残りの全てのケースに正解すると、さらに 75 点が与えられる。

入力は以下の形式で標準入力から与えられる。

出力

高橋君が、 229 日を過ごせる回数を 1 行で出力せよ。出力の末尾には改行をいれること。


入力例1

1988 2014

出力例1

7

高橋君が 229 日を過ごせるのは、1988 年、 1992 年、 1996 年、 2000 年、 2004 年、 2008 年、 2012 年の 7 回です。


入力例2

997 1003

出力例2

0

1000 年はうるう年ではないことに注意してください。


入力例3

1 2000000000

出力例3

485000000

高橋君は非常に長生きであることに注意してください。

D - 壊れた電卓

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

高橋君の電卓は壊れてしまっています。 K 種類より多くの種類の数字を打つと、電卓が壊れてしまいます。

整数 A が与えられます。高橋君は、この整数を入力したいです。 ですが、普通にその整数を打とうとすると、電卓が壊れてしまうことがあるため、 電卓が壊れない範囲で、出来るだけ整数 A との差の大きさが小さい整数を入力します。

この時、高橋君が入力する整数と、整数 A の差の大きさがいくつになるかを出力しなさい。


入力

入力は以下の形式で標準入力から与えられる。

A K
  • 1 行目には、入力したい整数 A (1 ≦ A ≦ 10^{15}) と、入力可能な数字の種類数 K (1 ≦ K ≦ 10) が、スペース区切りで与えられる。

部分点

  • 1 ≦ A ≦ 100,000 の全てのケースに正解すると、 30 点が与えられる。
  • 残りの全てのケースに正解すると、さらに 70 点が与えられる。

出力

高橋君が入力する整数と、整数 A の差の大きさの最小値を 1 行で出力せよ。出力の末尾には改行をいれること。


入力例1

1234 2

出力例1

12

高橋君は、 2 種類のキーまでしか入力することが出来ません。

今回の場合は、 1222 と入力することで、1234 と最も近くなり、その差は 12 となります。


入力例2

800000 1

出力例2

22223

数字は 1 種類しか使えないので、777777 が最も近い整数となります。


入力例3

7328495 10

出力例3

0

このケースでは、高橋君の電卓は本当は壊れていません。

よって、与えられた整数をそのまま入力することが出来ます。


入力例4

262004 2

出力例4

218

262222 が、最も近い整数となります。