fork download
  1. #include<stdio.h>
  2. char Q[256];
  3. char x[2][500][52];
  4. int ck[4096];
  5. int main() {
  6. int n, m;
  7. int r, i, j, k;
  8. scanf("%d%d", &n, &m);
  9. Q['A'] = 1, Q['C'] = 2, Q['T'] = 4, Q['G'] = 8;
  10. for (r = 0; r < 2; r++)for (i = 0; i < n; i++)for (j = 0; j < m; j++) {
  11. scanf(" %c", &x[r][i][j]);
  12. }
  13. int ans = 0;
  14. for (i = 0; i < m; i++)for (j = i + 1; j < m; j++)for (k = j + 1; k < m; k++) {
  15. for (r = 0; r < 2; r++) {
  16. for (int q = 0; q < n; q++) {
  17. ck[Q[x[r][q][i]] * (1 << 8) + Q[x[r][q][j]] * (1 << 4) + Q[x[r][q][k]]] |= (1 << r);
  18. }
  19. }
  20. bool flag = 0;
  21. for (r = 0; r < 2; r++) {
  22. for (int q = 0; q < n; q++) {
  23. flag |= ck[Q[x[r][q][i]] * (1 << 8) + Q[x[r][q][j]] * (1 << 4) + Q[x[r][q][k]]] == 3;
  24. ck[Q[x[r][q][i]] * (1 << 8) + Q[x[r][q][j]] * (1 << 4) + Q[x[r][q][k]]] = 0;
  25. }
  26. }
  27. ans += !flag;
  28. }
  29. printf("%d", ans);
  30. return 0;
  31. }
  32.  
Success #stdin #stdout 0s 4392KB
stdin
3 8
AATCCCAT
GATTGCAA
GGTCGCAA
ACTCCCAG
ACTCGCAT
ACTTCCAT
stdout
22