結果

問題 No.1150 シュークリームゲーム(Easy)
ユーザー yuruhiyayuruhiya
提出日時 2020-08-08 10:32:45
言語 Ruby
(3.4.1)
結果
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
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 2
other AC * 43
権限があれば一括ダウンロードができます
コンパイルメッセージ
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