
问题网站:
http://acm.hi-54.com/problem.php?pid=1122#include<stdio.h>
void Remove(int a[],int n,int b[])
{
for(int i=0; i<=n-1; i++)
{
for(int j=i+1; j<=n-1; j++)
{
if(a[i]==b[j])
b[j]=b[j]+1;
}
}
}
int build(int a[],int n,int b[],int c[])
{
int k=0;
for(int i=0; i<=n-1; i++)
{
if(a[i]==b[i])
{
c[k]=a[i];
k=k+1;
}
}
return k;
}
void sort(int c[],int k)
{
int med;
for(int i=0; i<=k-1; i++)
{
for(int j=0; j<=k-1-i; j++)
{
if(c[j]>c[j+1])
med=c[j],c[j]=c[j+1],c[j+1]=med;
}
}
}
int main()
{
int N;
scanf("%d",&N);
int a[N],b[N];
for(int i=0; i<=N-1; i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}
Remove(a,N,b);
int c[N];
int w=build(a,N,b,c);
sort(c,w);
printf("%d\n",w);
for(int i=0; i<=w-1; i++)
{
printf("%d",c[i]);
if(i<=w-2)
printf(" ");
}
return 0;
}