結果
問題 | No.361 門松ゲーム2 |
ユーザー |
|
提出日時 | 2016-05-29 18:16:15 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 341 ms / 2,000 ms |
コード長 | 823 bytes |
コンパイル時間 | 2,185 ms |
コンパイル使用メモリ | 78,900 KB |
実行使用メモリ | 58,088 KB |
最終ジャッジ日時 | 2024-10-07 17:42:22 |
合計ジャッジ時間 | 8,171 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 28 |
ソースコード
import java.util.Arrays; import java.util.HashSet; import java.util.Scanner; public class Main{ public static void main(String[] args){ new Main().solve(); } void solve(){ Scanner sc=new Scanner(System.in); int L=sc.nextInt(); int D=sc.nextInt(); int[] g=new int[L+1]; //g[i]=長さiの竹のみがあるとき、勝つことができるか。 for(int len=1;len<=L;len++){ HashSet<Integer> hs=new HashSet<>(); out:for(int i=1;3*i<len;i++){ for(int j=i+1;i+2*j<len;j++){ //k>j,len-i-j>j,len>i+2*j int k=len-i-j; if(k-i<=D){ hs.add(g[i]^g[j]^g[k]); } } } for(int i=0;;i++){ if(!hs.contains(i)){ g[len]=i; break; } } } System.out.println(g[L]!=0?"kado":"matsu"); } void tr(Object...o){ System.out.println(Arrays.deepToString(o)); } }