#include<stdio.h> char jiyin[5][4]={ 'C','C','G','C', 'G','C','A','G', 'G','A','T','C', 'A','T','C','G', 'T','C','G','G'}; int zuiduan[5][5]; int max=0; int vist[5]; int N=20; void yuchuli() { for(int i=0;i<5;i++) { for(int j=0;j<5;j++) { if(i!=j) { for(int a=0;a<4;a++) { int flag=0; for(int b=0;a+b<4;b++) { if(jiyin[i][a+b]!=jiyin[j][b]) { flag=1; break; } } if(flag==0) { zuiduan[i][j]=4-a; } } } } } } void ronghe(int step,int sum,int ge) { if(step==4) { if(sum>max) max=sum; return; } for(int i=0;i<5;i++) { if(vist[i]==0) { vist[i]=1; ronghe(step+1,sum+zuiduan[ge][i],i); vist[i]=0; } } } int main() { yuchuli(); ronghe(-1,0,-1); printf("%d",20-max); return 0; }