比赛 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;
}