盒子(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");
}
相关推荐
阿里嘎多学长几秒前
2026-06-07 GitHub 热点项目精选
开发语言·程序员·github·代码托管
字节高级特工几秒前
C++11(三)终极指南:可变参数模板与包装器详解
java·开发语言·c++·后端
constCpp2 分钟前
深入理解内存管理
后端·中间件·架构
川冰ICE5 分钟前
JavaScript高级④|类(class)与面向对象,ES6现代写法
开发语言·javascript·es6
小番茄夫斯基12 分钟前
全球大模型的价格和能力排行汇总
前端·后端·架构
Sirius Wu13 分钟前
Agent模型冷启动问题
开发语言·javascript·人工智能·机器学习·ecmascript·aigc
用户2986985301418 分钟前
Java 实现 Word 文档内容复制:段落、章节与全文合并技巧
java·后端
星栈30 分钟前
Makepad 不只是画界面:事件、状态和组件通信,到底怎么写
前端·rust
绍磊leo32 分钟前
Tauri 2.x 教程系列 (二):React 组件化与 Tauri 命令系统
rust·tauri
吴阿福|一人公司33 分钟前
类变量和实例变量的命名规范有哪些避坑点?
开发语言·python