結果
問題 |
No.2693 Sword
|
ユーザー |
![]() |
提出日時 | 2024-11-09 20:48:22 |
言語 | Go (1.23.4) |
結果 |
AC
|
実行時間 | 68 ms / 2,000 ms |
コード長 | 487 bytes |
コンパイル時間 | 13,726 ms |
コンパイル使用メモリ | 239,184 KB |
実行使用メモリ | 8,192 KB |
最終ジャッジ日時 | 2024-11-09 20:48:38 |
合計ジャッジ時間 | 14,005 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 29 |
ソースコード
package main import . "fmt" import . "math/big" func main() { var n,k int p:=new(Int) Scan(&n,p,&k) dp:=make([]*Int,k+1) dp[0]=p b:=new(Int) for ;n>0;n-- { var t int Scan(&t,b) for i:=k-1;i>=0;i-- { if dp[i]==nil { continue } x:=new(Int) if t==1 { x.Add(dp[i],b) } else { x.Add(dp[i],dp[i]) } if e:=dp[i+1];e==nil||e.Cmp(x)<0 { dp[i+1]=x } } } if dp[k].Cmp(NewInt(int64(1e18)))>0 { Println(-1) } else { Println(dp[k]) } }