记录编号 35858 评测结果 AAAAAAAAAAA
题目名称 法雷序列 最终得分 100
用户昵称 Gravatar11111111 是否通过 通过
代码语言 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;
}