#include <iostream>
#include<vector>
using namespace std;
struct Position
{
int _start;
int _end;
};
class GeneSplicing
{
private:
vector< vector<int> >result;//存储总的结果
vector<int>tempResult;//临时存储每组数据的路径
int num;//外显子个数
Position *gene;//记录数据
int **graph;//邻接矩阵
int *distance;//表示从第i个节点开始经过的最长路径distance[i]=max(distance[j]+1)
public:
GeneSplicing(){}
GeneSplicing(int n):num(n){}
void setNum(int n);
void initGene();
void initGraph();
void initDistance();
void input();//输入数据
void createGraph();//创建表
int calculateDistance(int i);//计算最长路径
int getMaxIndex();//得到路径最长的起点坐标
void getPath(int i);//获得路径
void getRusult();//得到当前一组数据的解
void printResult();//打印
};
int main()
{
GeneSplicing geneticPart;
int n;
cout<<"输入数据:"<<endl;
while(true)
{
cin>>n;
if(!n) break;
geneticPart.setNum(n);
geneticPart.input();
geneticPart.createGraph();
geneticPart.getRusult();
}
cout<<"可能结果:"<<endl;
geneticPart.printResult();
return 0;
}