盒子(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");
}
相关推荐
用户4124675083710 分钟前
再也不用 /usage 了!用 Claude Code 自定义状态栏,把用量焦虑彻底消灭
后端
weixin_5206498718 分钟前
C#线程底层原理知识
java·开发语言
AC赳赳老秦22 分钟前
OpenClaw与Excel联动:批量读取/写入数据,生成可视化报表
开发语言·python·excel·产品经理·策略模式·deepseek·openclaw
code_whiter23 分钟前
C++9(vector)
开发语言·c++
覆东流24 分钟前
第5天:Python字符串操作进阶
开发语言·后端·python
吴梓穆25 分钟前
UE5 C++ 使C++创建动画蓝图
开发语言·c++·ue5
冰暮流星26 分钟前
javascript之表单事件1
开发语言·前端·javascript
0xDevNull27 分钟前
队列(Queue)实战教程:从原理到架构应用
java·开发语言·后端
圆山猫32 分钟前
[AI] [Linux] 教我用rust写一个GPIO驱动
linux·rust