nyoj 8 一種排序

2022-11-24 16:26:32 字數 1236 閱讀 6455

時間限制:3000 ms  |            記憶體限制:65535 kb

難度:3

描述現在有很多長方形,每一個長方形都有一個編號,這個編號可以重複;還知道這個長方形的寬和長,編號、長、寬都是整數;現在要求按照一下方式排序(預設排序規則都是從小到大);

1.按照編號從小到大排序

2.對於編號相等的長方形,按照長方形的長排序;

3.如果編號和長都相同,按照長方形的寬排序;

4.如果編號、長、寬都相同,就只保留一個長方形用於排序,刪除多餘的長方形;最後排好序按照指定格式顯示所有的長方形;

輸入第一行有一個整數 0

第二個和第三個數值大的表示長,數值小的表示寬,相等 說明這是一個正方形(資料約定長寬與編號都小於10000);

輸出順序輸出每組資料的所有符合條件的長方形的 編號 長 寬

樣例輸入

1

81 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

思路:很簡單,可以先用set集合,將相同的元素去掉,然後自己定義一個比較函式。也可以用sort函式,先排好順序,然後重複的元素不輸出,這裡我用的是sort函式

1 #include 2 #include 3 #include 4

using

namespace

std;56

const

int max = 1005;7

8 typedef struct

rectangle;

1314

bool

cmp(rectangle a, rectangle b)

2324

intmain()

35 sort(a, a+m, cmp);

36 printf("

%d %d %d\n

", a[0].num, a[0].length, a[0

].width);

37for(int i = 1; i < m; i++)

43delete

a;44}45

return0;

46 }

NYOJ 8 一種排序

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述現在有很多長方形,每一個長方形都有一個編號,這個編號可以重複 還知道這個長方形的寬和長,編號 長 寬都是整數 現在要求按照一下方式排序 預設排序規則都是從小到大 1.按照編號從小到大排序 2.對於編號相等的長方形,按照長方形的長排...

ny8 一種排序 sort

時間限制 3000 ms 記憶體限制 65535 kb 難度 3 描述現在有很多長方形,每一個長方形都有一個編號,這個編號可以重複 還知道這個長方形的寬和長,編號 長 寬都是整數 現在要求按照一下方式排序 預設排序規則都是從小到大 1.按照編號從小到大排序 2.對於編號相等的長方形,按照長方形的長排...

每日一題 8月7日題目精講 雙棧排序

時間限制 c c 1秒,其他語言2秒 空間限制 c c 131072k,其他語言262144k 64bit io format lld tom最近在研究一個有趣的排序問題。如圖所示,通過2個棧s1和s2,tom希望藉助以下4種操作實現將輸入序列升序排序。操作a 如果輸入序列不為空,將第一個元素壓入棧...