poj 4044 Score Sequence 排序
水题,直接贴代码。
代码:
//poj 4044 //sep9 #include <iostream> #include <algorithm> using namespace std; int a[60],b[60]; int ans2[60]; int n,m; int deal(int index) { int i,j,len=0,t_i,t_j,t_len; for(j=0;j<m;++j) if(b[j]==a[index]){ for(t_i=index,t_j=j,t_len=0;t_i<n&&t_j<m;++t_i,++t_j,++t_len) if(a[t_i]!=b[t_j]) break; len=max(len,t_len); } return len; } int cmp(int x,int y) { if(x%10!=y%10) return x%10<y%10; return x<y; } int main() { int cases; scanf("%d",&cases); while(cases--){ int i; scanf("%d%d",&n,&m); for(i=0;i<n;++i) scanf("%d",&a[i]); for(i=0;i<m;++i) scanf("%d",&b[i]); sort(a,a+n); int p=0; for(int i=0;i<n;++i) if(i==0||a[i]!=a[i-1]) a[p++]=a[i]; n=p; sort(b,b+m); p=0; for(int i=0;i<m;++i) if(i==0||b[i]!=b[i-1]) b[p++]=b[i]; m=p; int len=-1,ansi; for(i=0;i<n;++i){ int tmp=deal(i); if(tmp>=len){ len=tmp; ansi=i; } } if(len<=0) printf("NONE\n"); else{ int p=0; for(i=ansi+len-1;i>=ansi;--i){ ans2[p++]=a[i]; printf("%d ",a[i]); } printf("\n"); sort(ans2,ans2+p,cmp); for(int i=0;i<p;++i) printf("%d ",ans2[i]); printf("\n"); } } return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。