vijos P1357 统计数字

vijos P1357 统计数字

快速排序之后从前向后数一遍。

我的代码如下:

#include < stdio.h >
#define  MAXN 200088
void  qsort( long  a[], long  begin, long  end)
{
long i=begin,j=end,mid=a[(begin+end)/2],t;
do{
         
while(a[i]<mid) i++;
         
while(a[j]>mid) j--;
         
if(i<=j)
         
{
            t
=a[i];a[i]=a[j];a[j]=t;
            i
++;j--;
         }

    }
while(i<=j);
    
if(i<end)   qsort(a,i,end);
    
if(j>begin) qsort(a,begin,j);
}

int  main()
{
long n,i,a[MAXN],tmp,count;
scanf(
"%ld",&n);
for(i=1;i<=n;i++)
   scanf(
"%ld",&a[i]);
qsort(a,
1,n);
for(i=1;i<=n;i++)
{
       tmp
=a[i];
       count
=1;
       
while(a[i+1]==tmp)
       
{
          i
++;
          count
++;
       }

       printf(
"%ld %ld\n",tmp,count);
    }

return 0;
}

你可能感兴趣的:(vijos P1357 统计数字)