记录编号 18286 评测结果 AAAAAAAAAA
题目名称 [NOIP 2006]明明的随机数 最终得分 100
用户昵称 GravatarOo湼鞶oO 是否通过 通过
代码语言 C++ 运行时间 0.021 s
提交时间 2010-09-12 11:11:30 内存使用 0.25 MiB
显示代码纯文本
#include <fstream>

#define I_F "random.in"
#define O_F "random.out"

using namespace std;

short n,m=1;
int s[100];

void Input();
void Qsort(short l, short r);
void Search();
void Output();

int main()
{
	Input();
	Qsort(0,n-1);
	Search();
	Output();
	return 0;
}

void Input()
{
	ifstream fin(I_F);
	fin>>n;
	short i;
	for (i=0; i<n; fin>>s[i++]);
	fin.close();
}

void Qsort(short l, short r)
{
	int x=s[l+rand()%(r-l+1)];
	int t;
	short i=l, j=r;
	do
	{
		while (s[i]<x)
			i++;
		while (s[j]>x)
			j--;
		if (i<=j)
		{
			t=s[i];
			s[i++]=s[j];
			s[j--]=t;
		}
	} while (i<j);
	if (i<r)
		Qsort(i,r);
	if (l<j)
		Qsort(l,j);
}

void Search()
{
	short i;
	for (i=1; i<n; i++)
		if (s[i]!=s[i-1])
			m++;
}

void Output()
{
	short i;
	ofstream fout(O_F);
	fout<<m<<endl;
	fout<<s[0];
	for (i=1; i<n; i++)
		if (s[i]!=s[i-1])
			fout<<" "<<s[i];
	fout<<endl;
	fout.close();
}