luoguP4283 [AHOI2008]Y型项链

题目


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include<bits/stdc++.h>
#define N 60
#define min(a,b) ((a)<(b)?(a):(b))
#define fsb(a,b,c) for(int a=b;a<=(c);a++)
#define fbs(a,b,c) for(int a=b;a>=(c);a--)
using namespace std;
char a[N],b[N],c[N];
int la,lb,lc,ab=0,ac=0,bc=0;
int main(){
a[0]=b[0]=c[0]='!';
scanf("%d",&la);scanf("%s",a+1);
scanf("%d",&lb);scanf("%s",b+1);
scanf("%d",&lc);scanf("%s",c+1);
fsb(i,1,min(la,lb)){
if(a[i]==b[i])ab++;else break;
}
fsb(i,1,min(lc,lb)){
if(c[i]==b[i])bc++;else break;
}
fsb(i,1,min(la,lc)){
if(a[i]==c[i])ac++;else break;
}
// printf("%10d %d %d\n",ab,bc,ac);
if(bc>ab){
swap(bc,ab);swap(lc,la);
}
if(ac>ab){
swap(ac,ab);swap(lc,lb);
}
// printf("%10d %d %d\n",la,lb,lc);
// printf("%10d %d %d\n",ab,ac,bc);
printf("%d\n",la-ab+lb-ab+lc-ac+ab-ac);
return 0;
}