luoguP4283 [AHOI2008]Y型项链

Date: Tue 06 November 2018
Updated: Tue 06 November 2018

In 5. OI.

Tags: OI

题目


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

Social