当前位置: 代码迷 >> 综合 >> poj 4044 Score Sequence 排序
  详细解决方案

poj 4044 Score Sequence 排序

热度:27   发布时间:2024-01-19 05:51:34.0

水题,直接贴代码。

代码:

//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;	
}


  相关解决方案