結果
問題 |
No.133 カードゲーム
|
ユーザー |
![]() |
提出日時 | 2019-02-25 15:54:14 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 145 ms / 5,000 ms |
コード長 | 957 bytes |
コンパイル時間 | 4,773 ms |
コンパイル使用メモリ | 77,372 KB |
実行使用メモリ | 41,316 KB |
最終ジャッジ日時 | 2024-12-26 05:07:00 |
合計ジャッジ時間 | 8,932 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 19 |
ソースコード
import java.util.Scanner; public class Main{ static int[] a1; static int[] b1; static double sum1; static boolean[] a2; static int n; static int[] a3; public static void main(String[] args){ Scanner sc = new Scanner(System.in); n = sc.nextInt(); sum1=0; a1=new int[n]; b1=new int[n]; a2=new boolean[n]; a3=new int[n]; double sum=1; for(int i = 0; i<n; i++){ int a = sc.nextInt(); a1[i]=a; } for(int i = 0; i<n; i++){ int b = sc.nextInt(); b1[i]=b; } for(int i=2; i<=n; i++){ sum*=i; } dfs(n-1); System.out.println(sum1/sum); } static void dfs(int k){ for(int i=0; i<n; i++){ if(!a2[i]){ a3[k]=a1[i]; a2[i]=true; dfs(k-1); a2[i]=false; } } if(k==0){ if(judge(a3)){ sum1++; } } } static boolean judge(int[] c){ int win=0; for(int i = 0; i<n; i++){ if(c[i]>b1[i]){ win++; } } if(win>(n/2)){ return true; }else{ return false; } } }