結果

問題 No.1241 Eternal Tours
ユーザー 👑 hos.lyric
提出日時 2020-09-06 00:41:22
言語 Ruby
(3.4.1)
結果
TLE  
(最新)
AC  
(最初)
実行時間 -
コード長 664 bytes
コンパイル時間 37 ms
コンパイル使用メモリ 7,552 KB
実行使用メモリ 415,308 KB
最終ジャッジ日時 2024-11-29 11:02:52
合計ジャッジ時間 115,619 ms
ジャッジサーバーID
(参考情報)
judge5 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 4
other AC * 32 TLE * 8
権限があれば一括ダウンロードができます
コンパイルメッセージ
Main.rb:21: warning: `+' after local variable or literal is interpreted as binary operator
Main.rb:21: warning: even though it seems like unary operator
Main.rb:22: warning: `+' after local variable or literal is interpreted as binary operator
Main.rb:22: warning: even though it seems like unary operator
Main.rb:23: warning: `+' after local variable or literal is interpreted as binary operator
Main.rb:23: warning: even though it seems like unary operator
Main.rb:24: warning: `+' after local variable or literal is interpreted as binary operator
Main.rb:24: warning: even though it seems like unary operator
Main.rb:25: warning: `+' after local variable or literal is interpreted as binary operator
Main.rb:25: warning: even though it seems like unary operator
Syntax OK

ソースコード

diff #

MO=998244353
G=3

$<.map{|line|
  x,y,t,a,b,c,d=line.split.map &:to_i
  
  m=1<<(x+1)
  n=1<<(y+1)
  gm=[0]*m
  gn=[0]*n
  gm[0]=1
  gn[0]=1
  gm[1]=G.pow((MO-1)/m,MO)
  gn[1]=G.pow((MO-1)/n,MO)
  (2...m).map{|i|gm[i]=(gm[i-1]*gm[1])%MO}
  (2...n).map{|j|gn[j]=(gn[j-1]*gn[1])%MO}
  
  z=0
  (0...m).map{|i|(0...n).map{|j|
    f=(0\
      +gm[0]*gn[0]\
      +gm[i]*gn[0]\
      +gm[0]*gn[j]\
      +gm[-i]*gn[0]\
      +gm[0]*gn[-j]\
    ).pow(t,MO)
    (0...2).map{|s|(0...2).map{|t|
      ii=((-1)**s*c-a)&(m-1)
      jj=((-1)**t*d-b)&(n-1)
      z+=(-1)**(s+t)*gm[(-i*ii)&(m-1)]*gn[(-j*jj)&(n-1)]*f
    }}
  }}
  z*=(m*n).pow(MO-2,MO)
  z=(z%MO+MO)%MO
  p z
}
0