PAT乙1045 關於0輸出的格式

2021-08-21 16:55:25 字數 1101 閱讀 2452

1045 快速排序(25)(25 分)

著名的快速排序演算法裡有乙個經典的劃分過程:我們通常採用某種方法取乙個元素作為主元,通過交換,把比主元小的元素放到它的左邊,比主元大的元素放到它的右邊。 給定劃分後的n個互不相同的正整數的排列,請問有多少個元素可能是劃分前選取的主元?

例如給定n = 5, 排列是1、3、2、4、5。則:

1的左邊沒有元素,右邊的元素都比它大,所以它可能是主元;\

儘管3的左邊元素都比它小,但是它右邊的2它小,所以它不能是主元;\

儘管2的右邊元素都比它大,但其左邊的3比它大,所以它不能是主元;\

類似原因,4和5都可能是主元。

因此,有3個元素可能是主元。

輸入格式:

輸入在第1行中給出乙個正整數n(<= 10^5^); 第2行是空格分隔的n個不同的正整數,每個數不超過10^9^。

輸出格式:

在第1行中輸出有可能是主元的元素個數;在第2行中按遞增順序輸出這些元素,其間以1個空格分隔,行末不得有多餘空格。

輸入樣例:51

3245

輸出樣例:31

45

一開始沒有考慮0主元情況,測試點2錯誤

加上printf(「0\n」),測試點2變格式錯誤;

在最後加一句printf(「\n」);

#include

#include

#include

using namespace std;

const

int n=1e5+5;

int n,a[n],l[n],f[n],maxx=0,minn=1e9+10;

int main()

}int k=0;

for(int i=n-1;i>=0;i--)

}if(k==0)printf("0\n");

else

printf("\n");///

//////

//////

//////

//////

//////

/////

return

0;}

PAT乙 1045 快速排序 (GO)

pat乙 1045 快速排序 go 解題思路 暴力搜尋肯定是不行的,對於go的話用scanf會超時,這裡我先讀入一行字串然後轉成整型陣列 主元就是比左邊的大,比右邊的小,而且排序後位置不變 經過一輪排序,當前位置的數字如果和排序後的數字一樣,並且比前面所有的數都大 9 1 2 3 6 5 8 7 4...

PAT乙1006 換個格式輸出整數 15

題目在這裡 時間限制 400 ms 記憶體限制 65536 kb 長度限制 8000 b 判題程式 standard 作者 chen,yue 讓我們用字母b來表示 百 字母s表示 十 用 12.n 來表示個位數字n 10 換個格式來輸出任乙個不超過3位的正整數。例如234應該被輸出為bbsss123...

PAT 乙 1043 輸出PATest(測試通過)

1043 輸出patest 20 分 給定乙個長度不超過 10 4 的 僅由英文本母構成的字串。請將字元重新調整順序,按patestpatest.這樣的順序輸出,並忽略其它字元。當然,六種字元的個數不一定是一樣多的,若某種字元已經輸出完,則餘下的字元仍按 patest 的順序列印,直到所有字元都被輸...