Submission #29862145


Source Code Expand

use proconio::input;

fn main() {
    input! {
        n: usize,
        abc: [(usize, usize, usize); n],
    };
    let mut max = 0_f64;
    for (a1, b1, c1) in abc.iter().copied() {
        for (a2, b2, c2) in abc.iter().copied() {
            if a1 * b2 == b1 * a2 {
                continue;
            }
            let (a1, b1, c1) = (a1 as f64, b1 as f64, c1 as f64);
            let (a2, b2, c2) = (a2 as f64, b2 as f64, c2 as f64);
            let x = (c2 * b1 - c1 * b2) / (a2 * b1 - a1 * b2);
            let y = (c2 * a1 - c1 * a2) / (b2 * a1 - b1 * a2);
            if abc
                .iter()
                .copied()
                .all(|(a, b, c)| a as f64 * x + b as f64 * y <= c as f64)
            {
                max = max.max(x + y);
            }
        }
    }
    let ans = max;
    println!("{}", ans);
}

Submission Info

Submission Time
Task 071 - Linear Programming
User bouzuya
Language Rust (1.42.0)
Score 1000
Code Size 839 Byte
Status AC
Exec Time 13 ms
Memory 2208 KiB

Judge Result

Set Name All
Score / Max Score 1000 / 1000
Status
AC × 21
Set Name Test Cases
All in01, in02, in03, in04, in05, in06, in07, in08, in09, in10, in11, in12, in13, in14, in15, in16, in17, in18, in19, in20, sample_01
Case Name Status Exec Time Memory
in01 AC 5 ms 2100 KiB
in02 AC 6 ms 2120 KiB
in03 AC 11 ms 2184 KiB
in04 AC 2 ms 2108 KiB
in05 AC 13 ms 2160 KiB
in06 AC 2 ms 2112 KiB
in07 AC 6 ms 2160 KiB
in08 AC 3 ms 2004 KiB
in09 AC 9 ms 2112 KiB
in10 AC 3 ms 2096 KiB
in11 AC 12 ms 2180 KiB
in12 AC 2 ms 2208 KiB
in13 AC 5 ms 2104 KiB
in14 AC 9 ms 2144 KiB
in15 AC 2 ms 2196 KiB
in16 AC 12 ms 2164 KiB
in17 AC 7 ms 2184 KiB
in18 AC 9 ms 2024 KiB
in19 AC 3 ms 2088 KiB
in20 AC 10 ms 2020 KiB
sample_01 AC 2 ms 2200 KiB