Time Limit: 2 sec / Memory Limit: 256 MB
問題文
高橋くんは、ソフトウェア会社に勤めています。 その会社では、短い変数名はバグを生む原因だと信じられており、長い変数名を使う習慣があります。
いま高橋くんは 2 つの変数名を思いつきましたが、残念なことにその長さを見分けることが出来ません。
いろんな意味で可哀想な彼の代わりに、与えられた 2 つの小文字アルファベットのみからなる文字列のうち、文字数が長い方の文字列を求めてください。
入力
入力は以下の形式で標準入力から与えられる。
A B
- 1 行目には、文字列 A (1 ≦ |A| ≦ 50) が与えられる。
- 2 行目には、文字列 B (1 ≦ |B| ≦ 50) が与えられる。
- 文字列 A,B には、小文字アルファベットのみが含まれることが保証されている。
- 文字列 A,B の長さは異なることが保証されている。
出力
文字数が長い方の文字列を 1 行で出力せよ。出力の末尾にも改行をいれること。
入力例1
isuruu isleapyear
出力例1
isleapyear
isuruu
は 6 文字、isleapyear
は 10 文字であるため、isleapyear
を出力します。
入力例2
ttttiiiimmmmeeee time
出力例2
ttttiiiimmmmeeee
このような変数名は邪悪ですが、彼の所属する会社では正義です。
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
高橋くんは、上司から
- 会社で作っている N 個のソフトウェアに平均でどれくらいのバグがあるか調べろ
- ただし、バグがないソフトは調査母数に含めるな
と指示されました。
しかも、上司は小数が嫌いです。とはいえ、バグ数の平均値を過小報告するわけにもいかないので、値を切り上げて報告することにしました。
高橋くんは、素早くバグ数の平均値をまとめて上司に報告する必要があります。 ソフトウェアごとのバグ数が与えられるので、バグが含まれるソフトウェアの、バグ数の平均値を小数で切り上げて求めてください。
入力
入力は以下の形式で標準入力から与えられる。
N A_1 A_2 ... A_N
- 1 行目には、ソフトウェアの数を表す整数 N (1 ≦ N ≦ 100) がスペース区切りで与えられる。
- 2 行目では、それぞれのソフトウェアに含まれるバグの数の情報が、スペース区切りで与えられる。 i 番目のソフトウェアのバグの数は、 i 番目に与えられる整数 A_i (0 ≦ A_i ≦ 100)によって与えられる。
- 与えられるソフトウェアのバグの合計数は、 1 つ以上であることが保証されている。
出力
バグが含まれるソフトウェアの、バグ数の平均値を小数で切り上げて 1 行で出力せよ。出力の末尾には改行をいれること。
入力例1
4 0 1 3 8
出力例1
4
バグが含まれるソフトウェアは 3 つであり、そのバグの総数は 12 個です。 よって、バグ数の平均値は 4 個です。
入力例2
5 1 4 9 10 15
出力例2
8
バグ数の平均値は 7.8 であるため、切り上げて 8 と出力する必要があります。
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
高橋くんは上司からあるアンケートアプリにバグがあるかどうか調べて欲しいと頼まれました。
このアプリは、ユーザに選択肢が K 個ある質問を N 回答えさせることにより、ユーザの性格を判定します。 質問や選択肢はユーザの回答によって変わらず一定であり、ユーザは全ての質問にちょうど 1 つの選択肢を選ぶことで、結果を閲覧できます。
全ての選択肢はある整数値を持ちます。このアプリは、ユーザによって選ばれた、全ての回答がそれぞれ保持する整数値の排他的論理和(XOR)を使って結果を算出します。計算の最後でこの値が 0 になってしまうと、結果が表示されずバグが発生してしまいます。
あなたには全ての選択肢が持つ整数値が与えられるので、高橋くんの代わりに、ユーザの選択によってはバグが発生する可能性があるかどうかを判定してください。
入力
入力は以下の形式で標準入力から与えられる。
N K T_{1,1} T_{1,2} … T_{1,K} T_{2,1} T_{2,2} … T_{2,K} : T_{N,1} T_{N,2} … T_{N,K}
- 1 行目には、質問の個数を表す整数 N (1≦N≦5) と、それぞれの質問に対する選択肢の個数を表す整数 K (1≦K≦5) が、スペース区切りで与えられる。
- 2 行目から N 行は、選択肢が保持する整数値が、スペース区切りで与えられる。 このうち、 i 行目の j 番目にある整数 T_{i,j} (0≦T_{i,j}≦127) は、 i 番目の質問に対する j 番目の選択肢が保持する整数値である。
出力
バグが発生することがある場合はFound
、そうでなければNothing
を 1 行で出力せよ。出力の末尾には改行をいれること。
入力例1
3 4 1 3 5 17 2 4 2 3 1 3 2 9
出力例1
Found
1 つ目の質問で 1 つ目の選択肢を、2 つ目の質問で 3 つ目の選択肢を、 3 つ目の質問で、2 つ目の選択肢を選んだとします。
すると、対応する数字はそれぞれ、 1,2,3 となり、これらのXORを取ると、0 となります。
よって、バグが発生してしまうため、Found
と出力します。
入力例2
5 3 89 62 15 44 36 17 4 24 24 25 98 99 66 33 57
出力例2
Nothing
バグの発生する回答の組み合わせはありません。
Time Limit: 2 sec / Memory Limit: 256 MB
問題文
高橋くんは、ソフトウエアが期待通りに動いたというエビデンス(証拠)として、画面のスクリーンショットを表計算ソフトに貼り付ける作業を命じられました。 画面のスクリーンショットは N 枚あり、高さは全て等しいのですが、幅が異なります。 また、表計算ソフトに貼りつけ可能なスクリーンショットには 2 つの制約が存在します。
- 表計算ソフトの幅は W しかない。そのため、貼りつけるスクリーンショットの幅の合計値は W 以下でなければならない。
- 表計算ソフトは K 枚より多くのスクリーンショットを貼りつけることが出来ない。よって、表計算ソフトに貼りつけ可能なスクリーンショットは K 枚までである。
さらに、スクリーンショットには「重要度」が存在するため、高橋くんは 2 つの制約を満たしながら、貼り付けるスクリーンショットが持つ重要度の合計値を最大化したいです。 しかし、彼にとってこの仕事は難しいので、あなたが彼の代わりに表計算ソフトに貼り付け可能なスクリーンショットが持つ重要度の合計の最大値を求めてください。
入力
入力は以下の形式で標準入力から与えられる。
W N K A_1 B_1 A_2 B_2 : A_N B_N
- 1 行目には、表計算ソフトの幅 W (1 ≦ W ≦ 10000) が与えられる。
- 2 行目には、スクリーンショットの数 N (1≦N≦50) と、表計算ソフトに貼り付け可能なスクリーンショットの枚数 K(1≦K≦N) が、スペース区切りで与えられる。
- 3 行目から N 行では、各スクリーンショットに関する情報が与えられる。このうち i 行目では i 番目のスクリーンショットにおける、幅 A_i (1 ≦ A_i ≦ 1000) と、重要度 B_i (1 ≦ B_i ≦ 100) の値が、スペース区切りで与えられる。
出力
表計算ソフトに貼り付け可能なスクリーンショットが持つ重要度の合計の最大値を 1 行で出力せよ。出力の末尾には改行をいれること。
入力例1
10 3 2 4 20 3 40 6 100
出力例1
140
2 番目と 3 番目のスクリーンショットを選ぶと、合計の幅が 9 、使用するスクリーンショットが 2 枚となり、条件を満たす。 この時の重要度の和は、 40 + 100 で 140 となる。
入力例2
10 5 4 9 10 3 7 3 1 2 6 4 5
出力例2
18
必ず K 枚のスクリーンショットを使わなくても良いことに注意してください。
入力例3
22 5 3 5 40 8 50 3 60 4 70 6 80
出力例3
210
幅が足りていても、スクリーンショットを最大で K 枚までしか置けないことに注意してください。