盒子(Box, ACM/ICPC NEERC 2004, UVa1587)rust解法

给定6个矩形的长和宽wi和hi(1≤wi,hi≤1000),判断它们能否构成长方体的6个面。

样例

复制代码
1345 2584
2584 683
2584 1345
683 1345
683 1345
2584 683
xing

1234 4567
1234 4567
4567 4321
4322 4567
4321 1234
4321 1234
buxing

解法

rust 复制代码
use std::io;

fn main() {
    let mut v: Vec<(u32, u32)> = vec![];
    for _ in 0..6 {
        let mut buf = String::new();
        io::stdin().read_line(&mut buf).unwrap();
        let mut it = buf.split_whitespace();
        let w = it.next().unwrap().parse().unwrap();
        let h = it.next().unwrap().parse().unwrap();

        v.push(if w > h {(h, w)}else {(w, h)});//短边在前,长边在后
    }
    v.sort();//从小到大排序
    for i in 0..3 {
        //两两相等,否则构不成
        if v[0 + i * 2] != v[1 + i * 2] {
            println!("buxing");
            return;
        }
    }
    // 0号的短边=2号的短边,且0号长边=4号短边,且2号长边=4号长边,否则构不成
    if v[0].0 != v[2].0 || v[0].1 != v[4].0 || v[2].1 != v[4].1{
        println!("buxing");
        return;
    }
    println!("xing");
}
相关推荐
lingchen19063 分钟前
用MATLAB r2010b和r2016b求解微分方程组
开发语言·算法·matlab
ttwosix9 分钟前
JavaEE初阶 多线程 3
java·开发语言
峥嵘life16 分钟前
Android16 系统 APEX 模块调试总结
android·大数据·开发语言
IT_陈寒20 分钟前
Redis大KEY删除慢到手抖,这几个方法让我少熬一夜
前端·人工智能·后端
OPEN-F25 分钟前
C++进阶教程:类与对象深入
java·开发语言·c++
步行cgn35 分钟前
传统 SSM 与 Spring Boot 开发对比:从配置地狱到约定优于配置
java·spring boot·后端
ttwosix42 分钟前
JavaEE初阶 多线程:单例模式 | 阻塞队列
java·开发语言
独立开发之道42 分钟前
【Three.js教程】 图元速查:官方内置的立体图形
开发语言·javascript·ecmascript
Htr_1 小时前
Python面向对象编程:类与对象基础
开发语言·python
RD_daoyi1 小时前
谷歌改写了76%的标题:超60字符的,95%会被谷歌自己重写
大数据·服务器·开发语言·前端·搜索引擎·html