Submission #1202614
Source Code Expand
#[allow(unused_imports)] use std::cmp::*; #[allow(unused_imports)] use std::collections::*; use std::io::Read; #[allow(dead_code)] fn getline() -> String { let mut ret = String::new(); std::io::stdin().read_line(&mut ret).ok().unwrap(); ret } fn get_word() -> String { let mut stdin = std::io::stdin(); let mut u8b: [u8; 1] = [0]; loop { let mut buf: Vec<u8> = Vec::with_capacity(16); loop { let res = stdin.read(&mut u8b); if res.unwrap_or(0) == 0 || u8b[0] <= b' ' { break; } else { buf.push(u8b[0]); } } if buf.len() >= 1 { let ret = String::from_utf8(buf).unwrap(); return ret; } } } #[allow(dead_code)] fn get<T: std::str::FromStr>() -> T { get_word().parse().ok().unwrap() } fn petrs_belief(p: &[f64], q: &[f64], x: f64) -> f64 { let mut sum = 0.0; for i in 0 .. 6 { let t1 = p[i] * x; let t2 = q[i] * (1.0 - x); sum += if t1 > t2 { t1 } else { t2 }; } sum } fn solve() { let p: Vec<f64> = (0 .. 6).map(|_| get::<f64>() / 100.0).collect(); let q: Vec<f64> = (0 .. 6).map(|_| get::<f64>() / 100.0).collect(); let mut lo = 0.0; let mut hi = 1.0; for _ in 0 .. 50 { let mid1 = (lo * 2.0 + hi) / 3.0; let mid2 = (lo + 2.0 * hi) / 3.0; let f1 = petrs_belief(&p, &q, mid1); let f2 = petrs_belief(&p, &q, mid2); if f1 < f2 { hi = mid2; } else { lo = mid1; } } println!("{}", petrs_belief(&p, &q, lo)); } fn main() { // In order to avoid potential stack overflow, spawn a new thread. let stack_size = 104_857_600; // 100 MB let thd = std::thread::Builder::new().stack_size(stack_size); thd.spawn(|| solve()).unwrap().join().unwrap(); }
Submission Info
Submission Time | |
---|---|
Task | D - Dice Game |
User | kobae964 |
Language | Rust (1.15.1) |
Score | 1000 |
Code Size | 1874 Byte |
Status | AC |
Exec Time | 3 ms |
Memory | 8572 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 1000 / 1000 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example0.txt, example1.txt |
All | 000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, example0.txt, example1.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
000.txt | AC | 3 ms | 8572 KB |
001.txt | AC | 3 ms | 8572 KB |
002.txt | AC | 3 ms | 8572 KB |
003.txt | AC | 3 ms | 8572 KB |
004.txt | AC | 3 ms | 8572 KB |
005.txt | AC | 3 ms | 8572 KB |
006.txt | AC | 3 ms | 8572 KB |
007.txt | AC | 3 ms | 8572 KB |
008.txt | AC | 3 ms | 8572 KB |
009.txt | AC | 3 ms | 8572 KB |
010.txt | AC | 3 ms | 8572 KB |
011.txt | AC | 3 ms | 8572 KB |
012.txt | AC | 3 ms | 8572 KB |
013.txt | AC | 3 ms | 8572 KB |
014.txt | AC | 3 ms | 8572 KB |
015.txt | AC | 3 ms | 8572 KB |
016.txt | AC | 3 ms | 8572 KB |
017.txt | AC | 3 ms | 8572 KB |
018.txt | AC | 3 ms | 8572 KB |
019.txt | AC | 3 ms | 8572 KB |
020.txt | AC | 3 ms | 8572 KB |
021.txt | AC | 3 ms | 8572 KB |
022.txt | AC | 3 ms | 8572 KB |
023.txt | AC | 3 ms | 8572 KB |
024.txt | AC | 3 ms | 8572 KB |
025.txt | AC | 3 ms | 8572 KB |
026.txt | AC | 3 ms | 8572 KB |
027.txt | AC | 3 ms | 8572 KB |
028.txt | AC | 3 ms | 8572 KB |
029.txt | AC | 3 ms | 8572 KB |
030.txt | AC | 3 ms | 8572 KB |
031.txt | AC | 3 ms | 8572 KB |
032.txt | AC | 3 ms | 8572 KB |
033.txt | AC | 3 ms | 8572 KB |
034.txt | AC | 3 ms | 8572 KB |
035.txt | AC | 3 ms | 8572 KB |
036.txt | AC | 3 ms | 8572 KB |
037.txt | AC | 3 ms | 8572 KB |
038.txt | AC | 3 ms | 8572 KB |
example0.txt | AC | 3 ms | 8572 KB |
example1.txt | AC | 3 ms | 8572 KB |