Organizations

9 results for atcoder
  • いつもやってるatcoderの問題シリーズ。 今回は最新のabc041を解いてきた。 問題はこちら。 [blogcard url=http://abc041.contest.atcoder.jp/assignments] A問題の回答 [code] s, i = STDIN.read.split(?\n) i = i.to_i – 1 puts s[i] [/code] 改行コード区切りで縦に並んだ文字列をそれぞれ変数に入れる。 iという数字を整数の型にセットして、1引く。 文字列sのi番目を表示させる。 B問題の回答 [code] A, B, C = STDIN.gets.split(" “).map(&:to_i) X = A * B * C Y = (10**9) + 7 puts X % Y [/code] スペース区切りで変数にセットし、整数の型にセットする。 AとBとCを積算する。 Yは指定された数字10の9乗足す7を計算している。 そして最後にX割るYの余りを出している。 C問題の回答 [code] N = STDIN.read.split("\n”).map(&:to_s) hash = {} i = 1.to_i N[1].split(/ /).each do | val | hash[i] = val.
    atcoder Created Tue, 12 Jul 2016 00:48:33 +0000
  • こんにちは、いなむーです。 いつものatcoderシリーズです。 今回はいつもより問題が簡単だったため、初めてCまで解くことができました。 問題Aはこちら。 そして書いたコードはこちら。 [code] A,B,C = STDIN.gets.split(/ /).map {|v|v.to_i} p 2 * ( A*B + A*C + B*C ) [/code] 表面積の公式に当てはめただけです。 ただ、公式を思い出すのに苦労しましたがw つぎに問題Bはこちら。 そして書いたコードはこちら。 [code] X = gets.to_i (1..1000000000).each do | v | if (v ** 4) == X puts v exit end end [/code] この辺がプログラマーとの違いな気がします。このコードでは無駄にとにかく4乗になる値を回してるだけなので、きっともっと良い方法がありそうです。 そして問題Cはこちら。 書いたコードはこちら。 [code] K = “WBWBWWBWBWBW” * 3 arr1 = %w[ Do Re Mi Fa So La Si ] arr2 = Array.new
    atcoder Created Fri, 17 Jun 2016 14:59:17 +0000
  • こんにちは、いなむーです。 毎度いつものatcoderです。 今回はabc038のaとbを解きました。 早速aの問題。 [blogcard url=http://abc038.contest.atcoder.jp/submissions/748589] コードはこちら。 [code] S = gets.chomp.to_s puts S[-1] == ‘T’ ? ‘YES’ : ‘NO’ [/code] ここでのポイントはStringメソッドを使用しているところです。 S[-1]とすることで最後から1文字目を抽出して、チェックしてます。 次にb問題。 問題はこちら。 [blogcard url=http://abc038.contest.atcoder.jp/tasks/abc038_b] 巨大ディスプレイの話ですね笑 一瞬解像度かな?と思うのですが、1920mmとかでているので、1.92m幅のディスプレイを使っているようなので、会議でもするのでしょうか。 実際に書いたコードはこちら。 [code lang=”ruby”] class ABC038b def setvar array = Array[] STDIN.read.each_line do | var | array « var end @H1, @W1 = array[0].split(‘ ‘).map { | v | v.to_i } @H2, @W2 = array[1].split(‘ ‘).map { | v | v.to_i } end
    atcoder Created Tue, 31 May 2016 13:22:36 +0000
  • こんにちは、いなむーです。 今日もAtCoderの問題です。 「これなら解けそう」って思ったら、解きたくてしょうがなくなるので、atcoder中毒になってますね笑 勉強にはなりました。 では、さっそく。 問題はこちら。リンク先をご参照ください。 [blogcard url=http://abc032.contest.atcoder.jp/tasks/abc032_b] そして書いたコードがこちら。 [code] class ABC032b def inputnum s, k = STDIN.read.split(?\n) @s = s.to_s @k = k.to_i end def setarr snum = 0 slength = @s.length snum2 = snum.to_i @array = Array[] (snum..slength).each { | var | str1 = @s[var,@k] @array « str1 if str1.size >= @k } end def displaynum p @array.sort.uniq.count end end x = ABC032b.new x.inputnum x.setarr x.displaynum [/code] これだとClassにする意味が無いかもしれませんが、とりあえずはこれで100点が取れたので、残しておきます。
    atcoder Created Tue, 24 May 2016 14:59:49 +0000
  • こんにちは、いなむーです。 AtCoderシリーズです。 今回はABC032のA問題「高橋くんと青木くんの好きな数」です。 問題はこちら。 問題文 青木君は整数 a で割り切れる数が好きです。 高橋君は整数 b で割り切れる数が好きです。 n 以上の整数で、青木君と高橋君の両方が好きな最小の数を答えてください。 入力 入力は以下の形式で標準入力から与えられる。 a b n 1 行目には、整数 a(1≦a≦100) が与えられる。 2 行目には、整数 b(1≦b≦100) が与えられる。 3 行目には、整数 n(1≦n≦20,000) が与えられる。 出力 出力は以下の形式で標準出力に行うこと。 1 行目に、n 以上の整数で青木君と高橋君の両方が好きな数の最小値を出力せよ。末尾の改行を忘れないこと。 この問題に対して、書いたコードがこちら。 [code] class Favnum def inputnum @a, @b, @n = STDIN.read.split(?\n).map { | v | v.to_i } end def smallestnum self.inputnum if @a.between?(1,100) && @b.between?(1,100) && @n.between?(1,20000) i = @n while i >= @n
    atcoder Created Mon, 23 May 2016 14:59:55 +0000
  • こんにちは、いなむーです。 タイトルだけ見るととても激ハックした感じがしますが、そんなことはありません笑 今日もAtCoder(abc033a)シリーズでございます。 タイトルはAtCoderの問題文を抜粋しているためこうなっております。 今回の問題はこちら。 問題文 あなたはゲーム開発メンバーの一員です。 現在、あなたはプレイヤーがゲームをプレイするために必要な暗証番号を決めさせる部分を実装しています。 この暗証番号は 4 桁 であり、それぞれの桁は 0 以上 9 以下の数字のいずれかです。暗証番号が 0 で始まる可能性もあります。 安全上の関係で、 4 桁とも同じ数字である暗証番号は認めないことにしました。プレイヤーが入力した 4 桁の数 N が与えられるので、 これが 4 桁とも全て同じ数字であるかどうかを判定してください。 入力 入力は以下の形式で標準入力から与えられる。 N 1 行目には、N が与えられる。N は 4 文字の 0 から 9 の数字からなる。 N が 0 で始まることもある。 出力 N が 4 桁とも全て同じ数字であるなら SAME を、そうでないなら DIFFERENT を 1 行に出力せよ。 出力の末尾にも改行を入れること。 入力例 1 2222 出力例 1 SAME そして私が書いたコードはこちら。 [code] A, B, C, D = gets.
    atcoder Created Sun, 15 May 2016 12:48:08 +0000
  • こんにちは、いなむーです。 AtCoderシリーズです。 今日も問題「テスト(abc034a)」を解いてみました。 問題はこちら。 問題文 高橋君が二回テストを受けました。一回目の得点は x 点、二回目の得点は y 点でした。また、一回目と二回目の得点は異なるものでした。 高橋君の得点は改善しましたか。高橋君の二回目の得点が一回目の得点より高くなっている場合は “Better”、低くなっている場合は “Worse” と出力してください。 入力 入力は以下の形式で標準入力から与えられる。 x y 入力はすべて整数である。 0≤x,y≤100 をみたす。 x と y は異なる。 部分点 この問題には部分点が設定されている。満点は 100 点である。 x < y を満たすデータセットに正解した場合は、50 点が与えられる。 出力 高橋君の二回目の得点が一回目の得点より高くなっている場合は “Better”、低くなっている場合は “Worse” と出力せよ。 出力の末尾には改行を入れること。 入力例1 12 34 出力例1 Better 今回はがんばって2パターンで書いて見ました。 パターン1 [code] x, y = gets.split.map { | v | v.to_i } if x.between?(1,100) && y.between?(1,100) puts x < y ? “Better” : “Worse”
    atcoder Created Thu, 12 May 2016 15:57:08 +0000
  • こんにちは、いなむーです。 AtCoderシリーズです。 今回もAの最も簡単な問題を解いてみました。 [blogcard url=http://abc035.contest.atcoder.jp/tasks/abc035_a] 問題はこちら。 問題文 高橋君は画面の幅が W 、高さが H のテレビを持っています。 このテレビの画面アスペクト比 W:H が 4:3 か 16:9 か判定してください。 入力 入力は以下の形式で標準入力から与えられる。 W H 1 行目にテレビの画面の幅と高さを表す 2 つの整数 W,H(1≦H,W≦10**5) が空白区切りで与えられる。 テレビの画面アスペクト比は 4:3 か 16:9 になることが保証される。 出力 高橋君のテレビの画面アスペクト比 W:H が 4:3 ならば4:3を、 16:9 ならば 16:9 を 1 行に出力せよ。改行を忘れないこと。 入力例 1 4 3 出力例 1 4:3 画面の幅が 4 、高さが 3 のテレビの画面アスペクト比は 4:3 なので4:3と出力してください。 AtCoderの問題3つ目ですので、gets.split.map { | V | v.to_i } パターンであることは分かりました笑
    atcoder Created Wed, 11 May 2016 14:47:54 +0000
  • [blogcard url=http://abc037.contest.atcoder.jp/tasks/abc037_a] AtCorder Begginer Contestの37の饅頭の問題を解いたので、ここで学んだことを振り返ります。 まず、問題は、 問題文 あなたは饅頭の店に来ています。ここでは白と緑の 2 種類の饅頭が売られていて、それぞれの種類は何個でも買うことができます。 白色の饅頭は 1 個 A 円で、緑色の饅頭は 1 個 B 円です。 あなたは C 円持っています。あなたはとにかく沢山の個数を食べたいので、種類は気にせず、なるべく多くの個数の饅頭を買おうと思っています。 2 種類で買う個数が違ったり、片方の種類しか買わなかったりしてもかまいません。 最大で何個の饅頭が買えるでしょうか。 というものです。 これに成約が加わります。 1≤A,B≤1,000 1≤C≤1,000,000 入力は以下の形式で標準入力から与えられる。 A B C 入力例 1 3 5 6 出力例 1 2 つまり、AもBも1〜1000までで、お金Cは1〜1000,000までとなります。 そこで、私は色々調べて、下記のようなコードを記載して、100点を取ることができました。 ※AtCoderではコードを提出すると、自動的にテストが走り、点数が表示される。 [code] A, B, C = gets.split.map { | v | v.to_i } if A.between?(1,1000) && B.between?(1,1000) && C.between?(1,1000000) if A <= B
    atcoder Created Mon, 09 May 2016 14:59:53 +0000