南陽ACM8 一種排序

2021-09-08 17:02:45 字數 1428 閱讀 2968

/*

一種排序

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

難度:3

描述 現在有很多長方形,每乙個長方形都有乙個編號,這個編號可以重複;還知道這個長方形的寬和長,編號、長、寬

都是整數;現在要求按照一下方式排序(預設排序規則都是從小到大);

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

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

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

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

輸入 第一行有乙個整數 0//否則查詢該長方形應插入到排好序的序列中的位置,最後移位進行插入

//最近常到南陽理工的acm**去a題了,雖然題大多都不太難,但每當做完一道題,心裡都有一種說不出的愉悅。

//程式本身應該也不難,應該是自己的方法選得不對才導致程式寫得這麼難看,改了大半天,好在最後還是ac了,還是挺開心的

//程式中還多處用到了goto,,沒辦法呀,想從多重巢狀的for迴圈中一下子跳出來,還是用goto最省事了。

//網上應該有很多寫得更好的**,我等下也去看看別人寫的。

#include

using namespace std;

const int m = 1000;

int main()

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

else if((width > a[j][2] && length == a[j][1] && number == a[j][0])

|| (length != a[j][1]) || (number != a[j][0])) }

if (j == -1)

goto loop;

} else if((length > a[j][1] && number == a[j][0]) || (number != a[j][0])) }

if (j == -1)

goto loop;

} else if (number > a[j][0]) }

loop:

if (j == -1) //如果插入的位置為最前

a[0][0] = number;

a[0][1] = length;

a[0][2] = width;

mask++;

} else

a[j+1][0] = number;

a[j+1][1] = length;

a[j+1][2] = width;

mask++;

} lop: ;

} for (i = 0; i < mask; i++) }

return 0;

}

南陽 oj 一種排序 題目8

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

南陽oj 一種排序 set

描述 現在有很多長方形,每乙個長方形都有乙個編號,這個編號可以重複 還知道這個長方形的寬和長,編號 長 寬都是整數 現在要求按照一下方式排序 預設排序規則都是從小到大 1.按照編號從小到大排序 2.對於編號相等的長方形,按照長方形的長排序 3.如果編號和長都相同,按照長方形的寬排序 4.如果編號 長...

南陽理工ACM《另一種階乘問題》65

時間限制 3000 ms 記憶體限制 65535 kb 難度 1 描述大家都知道階乘這個概念,舉個簡單的例子 5!1 2 3 4 5.現在我們引入一種新的階乘概念,將原來的每個數相乘變為i不大於n的所有奇數相乘例如 5 1 3 5.現在明白現在這種階乘的意思了吧!現在你的任務是求出1 2 n 的正確...