1. 程式人生 > >zcmu 1716: 棒棒糖

zcmu 1716: 棒棒糖

1716: 棒棒糖

Time Limit: 1 Sec Memory Limit: 128 MB

Description

有一天,zhizhang騷年去買棒棒糖,他買了n個棒棒糖,每個棒棒糖都有ai的甜度。現在騷年開始吃每根棒棒糖,如果騷年先吃棒棒糖的甜度小於接下來吃的棒棒糖的甜度,那麼他就會汪汪叫一聲。所以,你就想調戲他,你就想找出一個順序使他叫的次數最多。

Input

多組測試資料

第一行輸入一個n(1<=n<=1000)

輸入n個數ai(1<=ai<=1000)

Output

輸出最大叫的次數。

Sample Input

5
20 30 10 50 40
4
200 100 100 200
Sample Output

4
2
HINT

Source
【分析】
就是從小到大開始遍歷,當a[i]==a[i+1]時,就在a陣列的末尾插入a[i],直到遍歷完a陣列。

【程式碼】

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
int a[3009]={0}; int i,j,k,x,y,z; for(i=0;i<n;i++) { scanf("%d",&a[i]); } sort(a,a+n); for(i=0,j=n,z=0;i<j-1;i++) { if(a[i]<a[i+1]) { z++; } else if(a[i]
==a[i+1])//條件滿足時,在a陣列末尾插入a[i],同時a陣列的長度加1 { a[j]=a[i];j++; } if(j>3*n)//防止跌入死迴圈 break; } printf("%d\n",z); } return 0; }