盒子(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");
}
相关推荐
MSTcheng.10 分钟前
【C++】C++11新特性(二)
java·开发语言·c++·c++11
晓131312 分钟前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言
愚者游世12 分钟前
Delegating Constructor(委托构造函数)各版本异同
开发语言·c++·程序人生·面试·改行学it
一 乐13 分钟前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
梵刹古音15 分钟前
【C语言】 指针基础与定义
c语言·开发语言·算法
80530单词突击赢15 分钟前
SpringBoot整合SpringMVC全解析
java·spring boot·后端
Ekehlaft18 分钟前
这款国产 AI,让 Python 小白也能玩转编程
开发语言·人工智能·python·ai·aipy
rit843249920 分钟前
MATLAB中Teager能量算子提取与解调信号的实现
开发语言·matlab
开源技术23 分钟前
Python GeoPandas基础知识:地图、投影和空间连接
开发语言·ide·python
Cult Of26 分钟前
Alicea Wind的个人网站开发日志(2)
开发语言·python·vue