結果
問題 |
No.1279 Array Battle
|
ユーザー |
![]() |
提出日時 | 2024-12-18 11:29:02 |
言語 | Go (1.23.4) |
結果 |
WA
|
実行時間 | - |
コード長 | 652 bytes |
コンパイル時間 | 12,946 ms |
コンパイル使用メモリ | 233,600 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-12-18 11:29:16 |
合計ジャッジ時間 | 12,208 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | WA * 20 |
ソースコード
package main import . "fmt" import sl "slices" import . "math/bits" func main() { var n int Scan(&n) a:=make([]int,n) b:=make([]int,n) for i:=range a { Scan(&a[i]) } for i:=range b { Scan(&b[i]) } sl.Sort(a) dp:=make([][]int,n+1) for i:=range dp { dp[i]=make([]int,1<<n) } dp[0][0]=1 for i,v:=range a { for j,w:=range dp[i] { if w==0 { continue } for k,u:=range b { p:=j&(1<<k) if p!=0 { continue } if v<=u { continue } dp[i+1][j|p]+=w } } } var s,z int for i,v:=range dp[n] { x:=OnesCount(uint(i)) if x>z { s=v z=x } else if x==z { s+=v } } Println(s) }