結果
問題 | No.173 カードゲーム(Medium) |
ユーザー | kou6839 |
提出日時 | 2015-03-27 00:38:16 |
言語 | Java (openjdk 23) |
結果 |
AC
|
実行時間 | 374 ms / 3,000 ms |
コード長 | 1,412 bytes |
コンパイル時間 | 2,399 ms |
コンパイル使用メモリ | 79,748 KB |
実行使用メモリ | 51,956 KB |
最終ジャッジ日時 | 2024-06-29 01:17:49 |
合計ジャッジ時間 | 6,457 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 10 |
ソースコード
import java.math.BigInteger; import java.util.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n = sc.nextInt(); double ra = sc.nextDouble(); double rb = sc.nextDouble(); ArrayList<Integer> aa = new ArrayList<>(); ArrayList<Integer> bb = new ArrayList<>(); for(int i=0;i<n;i++) aa.add(sc.nextInt()); for(int i=0;i<n;i++) bb.add(sc.nextInt()); Collections.sort(aa); Collections.sort(bb); int awin=0; for(int i=0;i<50000;i++){ int suma =0; int sumb =0; ArrayList<Integer> a = new ArrayList<>(aa); ArrayList<Integer> b = new ArrayList<>(bb); while(true){ if(a.size()==1){ int acard=a.get(0); int bcard = b.get(0); if(acard>bcard){ suma+=acard+bcard; }else{ sumb+=acard+bcard; } break; }else{ int acard=0; int bcard=0; if(Math.random()<=ra){ acard=a.get(0); a.remove(0); }else{ int waa=(int)(Math.random()*(a.size()-1)+1); acard=a.get(waa); a.remove(waa); } if(Math.random()<=rb){ bcard=b.get(0); b.remove(0); }else{ int waa=(int)(Math.random()*(b.size()-1)+1); bcard=b.get(waa); b.remove(waa); } if(acard>bcard){ suma+=acard+bcard; }else{ sumb+=acard+bcard; } } } if(suma>sumb) awin++; } System.out.println(awin*1.0/50000); } }