记录编号 |
35858 |
评测结果 |
AAAAAAAAAAA |
题目名称 |
法雷序列 |
最终得分 |
100 |
用户昵称 |
11111111 |
是否通过 |
通过 |
代码语言 |
C++ |
运行时间 |
0.749 s |
提交时间 |
2012-03-05 19:10:17 |
内存使用 |
2.10 MiB |
显示代码纯文本
#include<iostream>
#include<fstream>
using namespace std;
int main()
{
ifstream fin("frac1.in");
ofstream fout("frac1.out");
int l[100001][3]={0};
int n,m=0,e;
double t[100001];
double a;
fin>>n;
fout<<'0'<<'/'<<'1'<<endl;
for (int i=1;i<=n;i++)
for (int j=1;j<=i-1;j++)
{
m++;
l[m][1]=i;
l[m][2]=j;
t[m]=1.0*l[m][2]/l[m][1];
}
for (int i=1;i<=m-1;i++)
for (int j=1;j<=m-i;j++)
{
if (t[j]>t[j+1])
{
e=l[j+1][2];
l[j+1][2]=l[j][2];
l[j][2]=e;
e=l[j+1][1];
l[j+1][1]=l[j][1];
l[j][1]=e;
a=t[j+1];
t[j+1]=t[j];
t[j]=a;
}
}
int i=1;
while (i<m)
{
if (t[i]==t[i+1])
{
if (l[i][2]<l[i+1][2])
{
e=l[i+1][2];
l[i+1][2]=l[i][2];
l[i][2]=e;
e=l[i+1][1];
l[i+1][1]=l[i][1];
l[i][1]=e;
a=t[i+1];
t[i+1]=t[i];
t[i]=a;
}
for (int j=i;j<=m-1;j++)
{
l[j][2]=l[j+1][2];
l[j][1]=l[j+1][1];
t[j]=t[j+1];
}
m--;
}
else
i++;
}
for (int i=1;i<=m;i++)
fout<<l[i][2]<<'/'<<l[i][1]<<endl;
fout<<'1'<<'/'<<'1';
fin.close();
fout.close();
return 0;
}