|
发表于 2021-12-13 12:16:08
|
显示全部楼层
本帖最后由 jhq999 于 2021-12-13 12:57 编辑
- int main()
- {
- int m=0,n=0,i=0,j=0,begin=0,end=0,min=0,tmp=0;
- scanf("%d%d",&m,&n);
- if(m<n)tmp=m,m=n,n=tmp;
- int *am=new int[m],*an=new int[n+1];
- i=0;
- while(i<m)scanf("%d",&am[i++]);
- i=0;
- while(i<n)scanf("%d",&an[i++]);
- min=n;
- for(i=0;i<m-n;i++)
- {
-
- for(j=0;j<n&&j+i<m;j++);
- {
- if(am[j+i]+an[j]>3)break;
- }
-
- if(j==n)
- {
- begin=-1;
- for(j=0;(j<n)&&(j+i<m);j++)
- {
- if(-1==begin)
- {
- if(am[j+i]+an[j]==3)begin=j;
- }
- else if(am[j+i]+an[j]<3||j==(n-1))
- {
- end=(j==(n-1))?(j+1):j;
- if(end-begin==1)break;
- if(end-begin<min)min=end-begin,begin=-1,end=m+n;
- }
- }
- }
- if(end-begin==1)
- {
- min=1;
- break;
- }
- }
- //输出min
- delete[] am;
- delete[] an;
- return 0;
- }
复制代码 |
|