結果

問題 No.2452 Incline
ユーザー kotatsugamekotatsugame
提出日時 2023-09-01 21:33:19
言語 Ruby
(3.3.0)
結果
AC  
実行時間 1,333 ms / 2,000 ms
コード長 506 bytes
コンパイル時間 191 ms
コンパイル使用メモリ 11,256 KB
実行使用メモリ 15,584 KB
最終ジャッジ日時 2023-09-01 21:33:28
合計ジャッジ時間 8,272 ms
ジャッジサーバーID
(参考情報)
judge12 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 86 ms
15,184 KB
testcase_01 AC 82 ms
15,248 KB
testcase_02 AC 82 ms
15,044 KB
testcase_03 AC 1,165 ms
15,268 KB
testcase_04 AC 1,333 ms
15,368 KB
testcase_05 AC 1,107 ms
15,284 KB
testcase_06 AC 1,177 ms
15,084 KB
testcase_07 AC 1,311 ms
15,284 KB
testcase_08 AC 516 ms
15,584 KB
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.rb:17: warning: literal in condition
Syntax OK

ソースコード

diff #

def g(n,m,a,b)
  ans=0
  while 1
    if a>=m
      ans+=n*(n-1)/2*(a/m)
      a%=m
    end
    if b>=m
      ans+=n*(b/m)
      b%=m
    end
    ym=a*n+b
    break if ym<m
    n=ym/m
    b=ym%m
    m,a=a,m
  end
  return ans
end
def f(n,m,a,b)
  ans=0
  if a<0
    a2=a%m
    ans-=n*(n-1)/2*((a2-a)/m)
    a=a2
  end
  if b<0
    b2=b%m
    ans-=n*((b2-b)/m)
    b=b2
  end
  return ans+g(n,m,a,b)
end
gets.to_i.times{
  n,m,l,r=gets.split.map &:to_i
  puts (f(m+1,n-1,-1,r)-f(m+1,n-1,-1,l-1))%998244353
}
0