結果
| 問題 |
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);
}
}
kou6839