結果

問題 No.111 あばばばば
ユーザー LeonardoneLeonardone
提出日時 2015-10-14 22:30:31
言語 Ruby
(3.3.0)
結果
AC  
実行時間 89 ms / 5,000 ms
コード長 796 bytes
コンパイル時間 56 ms
コンパイル使用メモリ 7,680 KB
実行使用メモリ 12,288 KB
最終ジャッジ日時 2024-07-21 15:57:32
合計ジャッジ時間 1,610 ms
ジャッジサーバーID
(参考情報)
judge3 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 88 ms
11,904 KB
testcase_01 AC 86 ms
11,904 KB
testcase_02 AC 84 ms
11,904 KB
testcase_03 AC 86 ms
12,032 KB
testcase_04 AC 85 ms
12,032 KB
testcase_05 AC 87 ms
12,288 KB
testcase_06 AC 89 ms
12,160 KB
testcase_07 AC 86 ms
12,160 KB
testcase_08 AC 84 ms
12,160 KB
testcase_09 AC 86 ms
12,160 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

#! ruby
# yukicoder My Practice
# author: Leonardone @ NEETSDKASU

# 頭の中を整理するためメモ

# L=3
# aba
# 回文は abaのみ
# a系 1
# b系 0

# L=5
# ababa
# 回文はabaが2 babが1 ababaが1
# a系 2 + 1
# b系 1

# L=7
# abababa
# 回文は abaが3 babが2 ababaが2 bababが1 abababaが1
# a系 3 + 2 + 1
# b系 2 + 1

# L=9
# ababababa
# 回文は abaは4 babが3 ababaが3 bababが2 abababaが2 babababが1 ababababaが1
# a系 4 + 3 + 2 + 1
# b系 3 + 2 + 1

# a系b系ともに自然数の和でLが増えるごとに増える
# a系の最大値はfloor(L/2)、b系はa系のマイナス1

# 自然数の和は1..nまでの和なら (n + 1)*n/2 で表せる

def nsum(n)
	(n + 1) * n / 2
end

L = gets.to_i

a = nsum(L.div(2))
b = nsum(L.div(2)-1)

ans = a + b

puts ans
0