結果

問題 No.1150 シュークリームゲーム(Easy)
ユーザー yuruhiyayuruhiya
提出日時 2020-08-08 10:32:45
言語 Ruby
(3.3.0)
結果
AC  
実行時間 132 ms / 2,000 ms
コード長 796 bytes
コンパイル時間 78 ms
コンパイル使用メモリ 7,424 KB
実行使用メモリ 20,480 KB
最終ジャッジ日時 2024-10-01 08:04:09
合計ジャッジ時間 6,245 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 78 ms
12,032 KB
testcase_01 AC 77 ms
12,160 KB
testcase_02 AC 74 ms
12,032 KB
testcase_03 AC 75 ms
12,160 KB
testcase_04 AC 74 ms
12,288 KB
testcase_05 AC 74 ms
12,032 KB
testcase_06 AC 77 ms
12,032 KB
testcase_07 AC 77 ms
12,032 KB
testcase_08 AC 77 ms
12,160 KB
testcase_09 AC 77 ms
12,032 KB
testcase_10 AC 76 ms
12,032 KB
testcase_11 AC 76 ms
12,288 KB
testcase_12 AC 77 ms
12,160 KB
testcase_13 AC 78 ms
12,032 KB
testcase_14 AC 75 ms
12,032 KB
testcase_15 AC 74 ms
12,160 KB
testcase_16 AC 75 ms
12,160 KB
testcase_17 AC 77 ms
12,032 KB
testcase_18 AC 73 ms
12,160 KB
testcase_19 AC 76 ms
12,032 KB
testcase_20 AC 74 ms
12,160 KB
testcase_21 AC 74 ms
12,288 KB
testcase_22 AC 114 ms
18,560 KB
testcase_23 AC 115 ms
18,560 KB
testcase_24 AC 115 ms
18,304 KB
testcase_25 AC 118 ms
18,688 KB
testcase_26 AC 122 ms
19,200 KB
testcase_27 AC 121 ms
19,584 KB
testcase_28 AC 121 ms
19,840 KB
testcase_29 AC 118 ms
18,304 KB
testcase_30 AC 120 ms
18,688 KB
testcase_31 AC 116 ms
18,560 KB
testcase_32 AC 116 ms
18,560 KB
testcase_33 AC 120 ms
18,816 KB
testcase_34 AC 125 ms
18,944 KB
testcase_35 AC 122 ms
19,456 KB
testcase_36 AC 127 ms
20,096 KB
testcase_37 AC 124 ms
19,584 KB
testcase_38 AC 117 ms
18,304 KB
testcase_39 AC 116 ms
18,432 KB
testcase_40 AC 125 ms
18,688 KB
testcase_41 AC 132 ms
19,840 KB
testcase_42 AC 123 ms
19,584 KB
testcase_43 AC 120 ms
19,584 KB
testcase_44 AC 123 ms
20,480 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Syntax OK

ソースコード

diff #

n = gets.to_i
s, t = gets.split.map { _1.to_i.pred }
a = gets.split.map &:to_i

x, y = [], []
(1..).each do |i|
	break if (s + i) % n == t
	x << a[(s + i) % n]
end
(1..).each do |i|
	break if (s - i) % n == t
	y << a[(s - i) % n]
end
ans = a[s] - a[t]

X, Y = x.size, y.size
if X.even? && Y.even?
	ans += x[...X / 2].sum - x[X / 2..].sum
	ans += y[...Y / 2].sum - y[Y / 2..].sum
elsif X.even? && Y.odd?
	ans += x[...X / 2].sum - x[X / 2..].sum
	ans += y[..Y / 2].sum  - y[Y / 2 + 1..].sum
elsif X.odd? && Y.even?
	ans += x[..X / 2].sum - x[X / 2 + 1..].sum
	ans += y[...Y / 2].sum - y[Y / 2..].sum
else
	x1=x[..X / 2].sum - x[X / 2 + 1..].sum
	x2=x[...X / 2].sum - x[X / 2..].sum
	y1=y[..Y / 2].sum - y[Y / 2 + 1..].sum
	y2=y[...Y / 2].sum - y[Y / 2..].sum
	ans += [x1+y2,x2+y1].max
end
puts ans
0