nyoj 8 一種排序
一種排序
時間限制:3000 ms | 記憶體限制:65535 KB
難度:3
- 描述
- 現在有很多長方形,每一個長方形都有一個編號,這個編號可以重複;還知道這個長方形的寬和長,編號、長、寬都是整數;現在要求按照一下方式排序(預設排序規則都是從小到大);
1.按照編號從小到大排序
2.對於編號相等的長方形,按照長方形的長排序;
3.如果編號和長都相同,按照長方形的寬排序;
4.如果編號、長、寬都相同,就只保留一個長方形用於排序,刪除多餘的長方形;最後排好序按照指定格式顯示所有的長方形;- 輸入
- 第一行有一個整數 0<n<10000,表示接下來有n組測試資料;
每一組第一行有一個整數 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 2 1 1 2 2 2 1 1 2 2 1
#include<bits/stdc++.h>
//#include<set>
using namespace std;
struct ac{
int x,y,z,k;
}a[10001];
bool cmp(struct ac q,struct ac w){
if(q.x!=w.x)
return q.x<w.x;
else if(q.y!=w.y)
return q.y<w.y;
return q.z<w.z;
}
int main(){
int n;
cin>>n;
while(n--){
//set<ac>a[1001];
int m;
cin>>m;
int l=0;
for(int j=0;j<m;j++){
int x1,x2,x3;
cin>>x1>>x2>>x3;
// bool b=0;
if(x2<x3) {
swap(x2,x3);
// b=1;
}
bool s=1;
for(int i=0;i<l;i++){
if(a[i].y==x2&&a[i].z==x3){
if(a[i].x==x1){
s=0;
break;
}
}
}
if(s){
a[l].x=x1;
a[l].y=x2;
a[l].z=x3;
// if(b) a[l].k=1;
l++;
}
// cout<<" 1"<<a[l-1].x<<" "<<a[l-1].y<<" "<<a[l-1].z<<endl;
}
sort(a,a+l,cmp);
for(int j=0;j<l;j++){
//if(a[j].k) swap(a[j].y,a[j].z);
cout<<a[j].x<<" "<<a[j].y<<" "<<a[j].z<<endl;
}
}
return 0;
}
相關文章
- 8種排序演算法排序演算法
- ACM 一種排序ACM排序
- Oh, my goddess nyojGo
- NYOJ--字首式計算
- NYOJ--重建二叉樹二叉樹
- NYOJ 480 Fibonacci Again!AI
- 三種快速排序排序
- O(lgn)的三種排序,快速排序、歸併排序、堆排序排序
- Python小技巧:一種字串的排序方式Python字串排序
- 用 Java 實現常見的 8 種內部排序演算法Java排序演算法
- C#常用8種排序演算法實現以及原理簡介C#排序演算法
- HashMap排序--Java8HashMap排序Java
- PHP 常見4種排序 氣泡排序、選擇排序、插入排序、快速排序PHP排序
- 三種快速排序法排序
- 各種排序的原理排序
- 8 種基本軟體開發模型:選擇哪一種?模型
- Java 8 Comparator: 列表排序Java排序
- JDK8的排序大法!!JDK排序
- 三種插入排序 直接插入排序,折半插入排序,希爾排序排序
- 7種排序演算法排序演算法
- js 常見四種排序JS排序
- 幾種排序的比較排序
- 快速排序三種實現排序
- Treeset的兩種排序方法排序
- 8種極品程式設計師,你屬於哪一種?程式設計師
- 8 種極品程式設計師,你屬於哪一種?程式設計師
- rust-algorithms:8-堆排序RustGo排序
- <qsort實現一個通用的氣泡排序,排序各種型別的資料詳解>排序型別
- Go 中的三種排序方法Go排序
- 八種常用排序演算法排序演算法
- 幾種常用的排序程式碼排序
- NYOJ 1409 快速計算【矩陣連乘】矩陣
- 趣文:8種極品程式設計師,你屬於哪一種?程式設計師
- 三種快速排序演算法以及快速排序的優化排序演算法優化
- (一)氣泡排序、選擇排序、插入排序排序
- 關於js陣列的六種演算法---水桶排序,氣泡排序,選擇排序,快速排序,插入排序,希爾排序的理解。JS陣列演算法排序
- Golang語言排序的幾種方式Golang排序
- 幾種常用的排序演算法排序演算法