Submission #1338345


Source Code Expand

use std::io::stdin;
use std::cmp::{max, min};

fn input_ints() -> Vec<i64> {
    let mut st = String::new();
    match stdin().read_line(&mut st) {
        Ok(_) => {
            st.split_whitespace()
                .map(|s| s.parse().unwrap())
                .collect()
        }
        Err(_) => panic!("err"),
    }
}

fn solve(xy: Vec<(i64, i64)>) -> i64 {
    let mut sort_by_larger = xy.clone();
    sort_by_larger.sort_by_key(|a| max(a.0, a.1));
    sort_by_larger.reverse();
    let mut sort_by_smaller = xy.clone();
    sort_by_smaller.sort_by_key(|a| min(a.0, a.1));

    let x = sort_by_larger[0];
    let pair_of_max = [x.0, x.1];
    let x = sort_by_smaller[0];
    let pair_of_min = [x.0, x.1];

    let x = sort_by_larger[1];
    let pair_of_second_max = [x.0, x.1];
    let x = sort_by_smaller[1];
    let pair_of_second_min = [x.0, x.1];

    let x = sort_by_larger[sort_by_larger.len() - 1];
    let pair_of_smallest_larger = [x.0, x.1];
    let x = sort_by_smaller[sort_by_smaller.len() - 1];
    let pair_of_largest_smaller = [x.0, x.1];

    let mut ret = Vec::new();
    for i in 0..2 {
        for j in 0..2 {
            for k in 0..2 {
                for l in 0..2 {
                    for m in 0..2 {
                        let x = [pair_of_max[0],
                                 pair_of_second_max[i],
                                 pair_of_second_min[j],
                                 pair_of_min[k],
                                 pair_of_smallest_larger[l],
                                 pair_of_largest_smaller[m]];
                        let y = [pair_of_max[1],
                                 pair_of_second_max[(i + 1) % 2],
                                 pair_of_second_min[(j + 1) % 2],
                                 pair_of_min[(k + 1) % 2],
                                 pair_of_smallest_larger[(l + 1) % 2],
                                 pair_of_largest_smaller[(m + 1) % 2]];
                        let r = (x.iter().max().unwrap() - x.iter().min().unwrap()) *
                                (y.iter().max().unwrap() - y.iter().min().unwrap());

                        // for i in 0..x.len() {
                        //     print!("{} ", x[i])
                        // }
                        // println!();

                        // for i in 0..y.len() {
                        //     print!("{} ", y[i])
                        // }
                        // println!();
                        // println!("{}", r);

                        ret.push(r);
                    }
                }
            }
        }
    }

    return ret.into_iter().min().unwrap();
}

fn main() {
    let l = input_ints();
    let n = l[0];

    let mut nums = Vec::new();
    for _ in 0..n {
        let l = input_ints();
        nums.push((l[0], l[1]))
    }

    println!("{}", solve(nums))
}

Submission Info

Submission Time
Task E - Ball Coloring
User warashi
Language Rust (1.15.1)
Score 0
Code Size 2958 Byte
Status WA
Exec Time 104 ms
Memory 19524 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 700
Status
AC × 3
AC × 22
WA × 13
Set Name Test Cases
Sample example0, example1, example2
All div20, div21, div22, div23, div24, example0, example1, example2, maxrand0, maxrand1, maxrand2, maxrand20, maxrand21, maxrand210, maxrand211, maxrand22, maxrand23, maxrand24, maxrand25, maxrand26, maxrand27, maxrand28, maxrand29, maxrand3, maxrand4, smallrand0, smallrand1, smallrand2, smallrand3, smallrand4, sparse0, sparse1, sparse2, sparse3, sparse4
Case Name Status Exec Time Memory
div20 AC 103 ms 19524 KiB
div21 AC 104 ms 19524 KiB
div22 WA 103 ms 19524 KiB
div23 WA 103 ms 19524 KiB
div24 WA 103 ms 19524 KiB
example0 AC 2 ms 4352 KiB
example1 AC 2 ms 4352 KiB
example2 AC 2 ms 4352 KiB
maxrand0 WA 103 ms 19524 KiB
maxrand1 AC 104 ms 19524 KiB
maxrand2 WA 104 ms 19524 KiB
maxrand20 AC 102 ms 19524 KiB
maxrand21 AC 103 ms 19524 KiB
maxrand210 AC 98 ms 19524 KiB
maxrand211 AC 103 ms 19524 KiB
maxrand22 AC 104 ms 19524 KiB
maxrand23 AC 104 ms 19524 KiB
maxrand24 AC 103 ms 19524 KiB
maxrand25 AC 102 ms 19524 KiB
maxrand26 AC 103 ms 19524 KiB
maxrand27 AC 104 ms 19524 KiB
maxrand28 AC 104 ms 19524 KiB
maxrand29 WA 103 ms 19524 KiB
maxrand3 WA 104 ms 19524 KiB
maxrand4 WA 103 ms 19524 KiB
smallrand0 AC 2 ms 4352 KiB
smallrand1 AC 2 ms 4352 KiB
smallrand2 AC 2 ms 4352 KiB
smallrand3 AC 2 ms 4352 KiB
smallrand4 AC 2 ms 4352 KiB
sparse0 WA 104 ms 19524 KiB
sparse1 WA 103 ms 19524 KiB
sparse2 WA 103 ms 19524 KiB
sparse3 WA 104 ms 19524 KiB
sparse4 WA 104 ms 19524 KiB