。每个人都有一个考试等级,教室里面一共有N个课桌,按照顺序排成一列,每个课桌可以坐两个人,记他们的能力等级为(A[i],B[i])。
现在决定对能力等级为K的人进行测验。从这N排中选择连续的L排进行测验,要求这L排中的每一排至少有一个人考试等级为K。
现在想知道L的最大值以及对应的等级K。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int N = 1e5+4; int a[N],b[N] ,f[13][N],mx,n ; signed main(){ int i,j; cin>>n; for(int i=1;i<=n;i++) cin>>a[i]>>b[i], mx=max(mx,max(a[i],b[i])); for(i=1;i<=mx;i++) for(j=1;j<=n;j++) if(a[j]==i||b[j]==i) f[i][j] = f[i][j-1]+1; int t=0; for(i=1;i<=mx;i++) for(j=1;j<=n;j++) t=max(t,f[i][j]); for(i=1;i<=mx;i++) for(j=1;j<=n;j++) if(f[i][j]==t){ cout<<t<<' '<<i<<endl; return 0 ; } }
标签:int,codevs2950,考试,排中,突击,include,mx,等级 From: https://www.cnblogs.com/towboa/p/17573204.html