把所有情况打表,然后随便暴力。
1 #include2 using namespace std; 3 int n,an,bn,p1,p2; 4 int a[10001],b[10001]; 5 bool f[6][6]; 6 int ans1,ans2; 7 void init() 8 { 9 f[0][0]=0; f[0][0]=0;10 f[0][1]=0; f[1][0]=1;11 f[1][1]=0; f[1][1]=0;12 f[0][2]=1; f[2][0]=0;13 f[1][2]=0; f[2][1]=1;14 f[2][2]=0; f[2][2]=0;15 f[0][3]=1; f[3][0]=0;16 f[1][3]=1; f[3][1]=0;17 f[2][3]=0; f[3][2]=1;18 f[3][3]=0; f[3][3]=0;19 f[0][4]=0; f[4][0]=1;20 f[1][4]=0; f[4][1]=1;21 f[2][4]=1; f[4][2]=0;22 f[3][4]=1; f[4][3]=0;23 f[4][4]=0; f[4][4]=0;24 }25 int main()26 {27 scanf("%d%d%d",&n,&an,&bn);28 init();29 for(int i=1;i<=an;i++) scanf("%d",&a[i]);30 for(int i=1;i<=bn;i++) scanf("%d",&b[i]);31 for(int i=1;i<=n;i++)32 {33 p1++; p2++;34 if(p1>an) p1=1;35 if(p2>bn) p2=1;36 ans1+=f[a[p1]][b[p2]];37 ans2+=f[b[p2]][a[p1]];38 }39 printf("%d %d\n",ans1,ans2);40 return 0;41 }