Kickdown UVA - 1588
这一题就比较简单了,就是让你将两个模具放到一个高度为3的空间里,问最小需要多少的长度。
就用一个模具从最左未接触到最右未接触匹配一遍就行,我这里是用另一种方法实现的,即用一个模具直接从第一位开始向右匹配一遍找一个最小值,再用另一个模具匹配这一个找最小值,然后取两个最小值间最小的。
#include<bits/stdc++.h>
using namespace std;
char s1[305],s2[305];
int minx;
void move1(char a[],char b[]){
for(int i=0;i<=strlen(a);i++){
int flag=0;
for(int j=0;j<strlen(b);j++){
if(a[i+j]=='2' && b[j]=='2'){
flag=1;
break;
}
//cout<<a[i+j]<<' '<<i<<' '<<j<<endl;
}
if(!flag&&max(strlen(a),i+strlen(b))<minx)
minx=max(strlen(a),i+strlen(b));
//cout<<flag<<endl;
}
}
int main(){
while(scanf("%s %s",s1,s2)!=EOF){
minx=strlen(s1)+strlen(s2);
move1(s1,s2);
move1(s2,s1);
cout<<minx<<endl;
memset(s1,0,sizeof(s1));
memset(s2,0,sizeof(s2));
}
return 0;
}