记录编号 |
18286 |
评测结果 |
AAAAAAAAAA |
题目名称 |
[NOIP 2006]明明的随机数 |
最终得分 |
100 |
用户昵称 |
Oo湼鞶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();
}