結果

問題 No.133 カードゲーム
ユーザー kou6839kou6839
提出日時 2015-01-23 22:48:12
言語 Java21
(openjdk 21)
結果
CE  
(最新)
AC  
(最初)
実行時間 -
コード長 1,321 bytes
コンパイル時間 2,665 ms
コンパイル使用メモリ 81,088 KB
最終ジャッジ日時 2024-04-27 02:06:12
合計ジャッジ時間 3,221 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
コンパイルエラー時のメッセージ・ソースコードは、提出者また管理者しか表示できないようにしております。(リジャッジ後のコンパイルエラーは公開されます)
ただし、clay言語の場合は開発者のデバッグのため、公開されます。

コンパイルメッセージ
Main.java:4: error: package org.omg.CORBA does not exist
import org.omg.CORBA.PUBLIC_MEMBER;
                    ^
1 error

ソースコード

diff #

import java.math.*;
import java.util.*;

import org.omg.CORBA.PUBLIC_MEMBER;

public class Main {
	static int n;
	static int[] a;
	static int[] b;
	static int now=0;
	static int ans=0;
	static ArrayList<Integer> aa = new ArrayList<>();
	static ArrayList<Integer> bb = new ArrayList<>();
	public static void dfsa(int nn){
		if(nn== ((1<<n)-1)){
			dfsb(0);
		}
		for(int i=0;i<n;i++){
			if((nn>>i & 1) ==0){
				nn+= 1<<i;
				aa.add(a[i]);
				dfsa(nn);
				aa.remove(aa.size()-1);
				nn-= 1<<i;
			}
		}
	}
	public static void dfsb(int nnn){
		if(nnn==((1<<n)-1)){
			now++;
			int count =0;
			for(int i=0;i<n;i++){
				if(aa.get(i)>bb.get(i)) count++;
			}
			if(count>(n/2)){
				ans++;
			}
		}
		for(int i=0;i<n;i++){
			if((nnn>>i & 1) ==0){
				nnn+= 1<<i;
				bb.add(b[i]);
				dfsb(nnn);
				bb.remove(bb.size()-1);
				nnn-=1<<i;;
			}
		}
	}
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();
        a = new int[n];
        b = new int[n];
        for(int i=0;i<n;i++){
        	a[i]=sc.nextInt();
        }
        for(int i=0;i<n;i++){
        	b[i]=sc.nextInt();
        }
        dfsa(0);
        int waru=1;
        for(int i=1;i<=n;i++){
        	waru*=i;
        	waru*=i;
        }
        System.out.println(1.0*ans/waru);
    }
}		
0