結果
問題 |
No.210 探し物はどこですか?
|
ユーザー |
|
提出日時 | 2016-03-23 15:03:29 |
言語 | Java (openjdk 23) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,051 bytes |
コンパイル時間 | 2,241 ms |
コンパイル使用メモリ | 77,904 KB |
実行使用メモリ | 61,976 KB |
最終ジャッジ日時 | 2024-10-01 21:28:09 |
合計ジャッジ時間 | 17,756 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 36 WA * 7 |
ソースコード
package yukicoder210; import java.util.Comparator; import java.util.PriorityQueue; import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); double[] p=new double[n+1]; double[] q=new double[n+1]; for(int i=0;i<n;i++){ p[i+1]=sc.nextDouble()/1000; //p[i]=i番目の部屋で眼鏡を紛失した確率 } for(int i=0;i<n;i++){ q[i+1]=sc.nextDouble()/100; //q[i]=i番目の部屋に眼鏡が落ちていた場合一回の探索で見つけられる確率 } PriorityQueue<double[]> queue = new PriorityQueue<double[]>(n, new Comparator<double[]>(){ public int compare(double[] x, double[] y) { return -Double.compare(x[0], y[0]); } }); for(int i=1;i<=n;i++){ queue.add(new double[]{p[i]*q[i],(double)i});//部屋を探して見つかる確率 } double E=0; for(int i=1;i<300000;i++){ double[] a=queue.poll(); E+=a[0]*i; a[0]=a[0]*(1-q[(int)a[1]]); queue.add(a); } System.out.println(E); } }