虽然是模拟,但是我们可以用矩阵保存结果,来是其更加简便。
——代码

1 #include <cstdio> 2 #include <iostream> 3 4 int map[5][5] = {{0, 0, 1, 1, 0}, 5 {1, 0, 0, 1, 0}, 6 {0, 1, 0, 0, 1}, 7 {0, 0, 1, 0, 1}, 8 {1, 1, 0, 0, 0}}; 9 int n, x, y, ans1, ans2; 10 int a[210], b[210]; 11 12 inline int read() 13 { 14 int x = 0, f = 1; 15 char ch = getchar(); 16 for(; !isdigit(ch); ch = getchar()) if(ch == '-') f = -1; 17 for(; isdigit(ch); ch = getchar()) x = (x << 1) + (x << 3) + ch - '0'; 18 return x * f; 19 } 20 21 int main() 22 { 23 int i, j; 24 n = read(); 25 x = read(); 26 y = read(); 27 for(i = 0; i < x; i++) a[i] = read(); 28 for(i = 0; i < y; i++) b[i] = read(); 29 i = 0; 30 j = 0; 31 while(n--) 32 { 33 ans1 += map[a[i]][b[j]]; 34 ans2 += map[b[j]][a[i]]; 35 i = (++i) % x; 36 j = (++j) % y; 37 } 38 printf("%d %d ", ans1, ans2); 39 return 0; 40 }