课后临时存储代码
原题链接:611.午餐吃什么2024-05-05 20:03:55
发布于:江苏
/*
现在有很多长方形,每一个长方形都有一个编号,
这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;
现在要求按照以下方式排序(默认排序规则都是从小到大);
1.按照编号从小到大排序;
2.对于编号相等的长方形,按照长方形的长从小到大排序;
3.如果编号和长都相同,按照长方形的宽从小到大排序;
输入格式
第一行有一个整数 0<m<1000,表示有m个长方形;
接下来的m行,每一行有三个数 ,第一个数表示长方形的编号,
第二个和第三个数值大的表示长,数值小的表示宽,
相等说明这是一个正方形(数据约定长宽与编号都小于10000);
输出格式
顺序输出每组数据的所有符合条件的长方形的编号、长、宽。
如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形。
样例组
输入#1
8
1 1 1
1 1 1
1 1 2
1 2 1
1 2 2
2 1 1
2 1 2
2 2 1
输出#1
1 1 1
1 2 1
1 2 2
2 1 1
2 2 1
*/
#include <bits/stdc++.h>
using namespace std;
struct node{
int idx, len, wid;
}a[1005];
int n;
bool cmp(node x, node y){
if (x.idx != y.idx) return x.idx < y.idx;
if (x.len != y.len) return x.len < y.len;
return x.wid < y.wid;
}
int main(){
cin>>n;
for (int i=0; i<n; i++){
cin>>a[i].idx;
int l,w;
cin>>l>>w;
if (l<w) swap(l, w);
a[i].len = l, a[i].wid = w;
}
sort(a, a+n, cmp);
for (int i=0; i<n; i++){
if () continue;
cout<<a[i].idx<<' '<<a[i].len<<' '<<a[i].wid<<endl;
}
return 0;
}
这里空空如也
有帮助,赞一个