记录编号 386967 评测结果 AAAAAAAAAA
题目名称 [冲刺NOIP2014]高校排名 最终得分 100
用户昵称 Gravatar面对疾风吧 疾风 疾风吧 是否通过 通过
代码语言 C++ 运行时间 0.000 s
提交时间 2017-03-25 11:41:08 内存使用 0.00 MiB
显示代码纯文本
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define maxn 110
using namespace std;
struct School{
	int a[maxn];
}s[maxn];
int n,m,f[maxn],ans;
bool flag;
bool comp(const School &a,const School &b){
	for(int i=1;i<=m;i++){
		if(a.a[i]>b.a[i])return 0;
	}
	return 1;
}

int Main(){
	freopen("unirank.in","r",stdin);freopen("unirank.out","w",stdout);
	
	scanf("%d%d",&n,&m);
	for(int i=1;i<=m;i++){
		for(int j=1;j<=n;j++){
			int x;scanf("%d",&x);
			s[x].a[i]=j;
		}
	}
	sort(s+1,s+n+1,comp);
	/*for(int i=1;i<=n;i++){
		for(int j=1;j<=m;j++) printf("%d ",s[i].a[j]); printf("\n");
	}*/
	for(int i=1;i<=n;i++){
		f[i]=1;
		for(int j=0;j<i;j++){
			flag=0;
			for(int k=1;k<=m;k++){
				if(s[j].a[k]>s[i].a[k]){flag=1; break;}
			}
			if(flag) continue;
			f[i]=max(f[i],f[j]+1);
		}
		ans=max(ans,f[i]);
	}
	printf("%d\n",ans);
	
	getchar();getchar();
	return 0;
}
int haha=Main();
int main(){;}