比赛 |
20120302 |
评测结果 |
AAAAAAAAAAT |
题目名称 |
法雷序列 |
最终得分 |
90 |
用户昵称 |
11111111 |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2012-03-02 21:44:30 |
显示代码纯文本
#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 a,b;
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;
}
for (int i=1;i<=m-1;i++)
for (int j=1;j<=m-i;j++)
{
a=1.0*l[j][2]/l[j][1];
b=1.0*l[j+1][2]/l[j+1][1];
if (a>b)
{
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;
}
}
int i=1;
while (i<m)
{
a=1.0*l[i][2]/l[i][1];
b=1.0*l[i+1][2]/l[i+1][1];
if (a==b)
{
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;
}
for (int j=i;j<=m-1;j++)
{
l[j][2]=l[j+1][2];
l[j][1]=l[j+1][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;
}