69,382
社区成员
发帖
与我相关
我的任务
分享
#include<stdlib.h>
#include<string.h>
#include<stdio.h>
//#define local
int m, n;
int t;
char s[100][1005],s2[1005];
int num[4];
int count;
int max,max1;
int main()
{
scanf("%d", &t);
while (t--)
{
count = 0;
scanf("%d %d", &m, &n);
for (int i = 0; i < m; i++)
{
scanf("%s", s[i]);
}
for (int j = 0; j < n; j++)
{
memset(num, 0, sizeof(num)*4);
for (int i = 0; i < m; i++)
{
if (s[i][j] == 'A') num[0]++;
if (s[i][j] == 'C') num[1]++;
if (s[i][j] == 'G') num[2]++;
if (s[i][j] == 'T') num[3]++;
}
max = 0;
max1 = num[0];
//printf("0:%d,1:%d,2:%d,3:%d\n", num[0], num[1], num[2], num[3]);
for (int k = 0; k < 4; k++)
{
if (max1 < num[k])
{
max1 = num[k];
max = k;
}
}
if (max== 0)s2[j] = 'A';//printf("A");
if (max== 1)s2[j] = 'C';//printf("C");
if (max== 2)s2[j] = 'G';//printf("G");
if (max== 3)s2[j] = 'T';//printf("T");
count += m - num[max];
//printf("count:%d,max:%d\n", count, num[max]);
}
s2[n] = '\0';
printf("%s\n%d\n", s2, count);
//if (t)printf("\n");
}
return 0;
}
memset(num, 0, sizeof(num)*4);
memset(num, 0, sizeof(num[0])*4);