UVA-1368

来源:互联网 发布:天津市网络教育平台 编辑:程序博客网 时间:2024/04/30 05:12


#include <algorithm>
#include <iostream>
#include <utility>
#include <cstring>
#include <cstdlib>
#include <cstdio>
#include <deque>
#include <string>
#include <vector>
#include <cmath>
#include <stack>
#include <queue>
#include <map>
#include <set>
using namespace std;
#define mm(a,i) memset(a, i, sizeof(a));
#define LL    long long
#define Mod 1000000007
#define SC_C(s)           scanf("%c", &s)
#define SC(a)             scanf("%d", &a)
#define SCC(a,b)          scanf("%d %d", &a, &b)
#define SCCC(a,b,c)       scanf("%d %d %d", &a, &b, &c)
#define FXA(i,a,n)        for(i=a; i<n; i++)
#define FDA(i,a,n)        for(i=a; i>n; i++)
#define FXDA(i,a,n)       for(i=a; i<=n; i++)
#define FDDA(i,a,n)       for(i=a; i>=n; i++)
#define FXB(i,a,n)        for(i=a; i<n; i--)
#define FDB(i,a,n)        for(i=a; i>n; i--)
#define FXDB(i,a,n)       for(i=a; i<=n; i--)
#define FDDB(i,a,n)       for(i=a; i>=n; i--)
#define PF(n)             printf("%d\n", n);
#define PFF(n,m)          printf("%d %d\n", n, m);
#define PFFF(x,y,z)       printf("%d %d %d\n", x, y, z);
#define PF_Case(i)        printf("Case %d:\n",i);
#define PF_C(i)           printf("%c:\n",i);
#define PF_L(x)           printf("%I64d\n",x);
#define IN                freopen("D:\\in.txt","r",stdin);
#define ENT               printf("\n");
#define MAX(a,b)          a>b?a:b
#define MIN(a,b)          a<b?a:b
int maxx =  999999999;
int minn = -999999999;
bool flag;
int i,j,k,T,sum,m,n;
char dna[55][1005];
int cnt[1005][5];
char anss[4]= {'A','C','G','T'};
int main() {
#ifndef ONLINE_JUDGE
    IN
#endif // ONLINE_JUDGE
    cin>>T;
    while(T--) {
        cin>>m>>n;
        mm(dna,0);
        mm(cnt,0);
        int cntt=0;
        FXA(i,0,m)
        FXA(j,0,n) {
            cin>>dna[i][j];
            switch(dna[i][j]) {
            case 'A':
                cnt[j][0]++;
                break;
            case 'C':
                cnt[j][1]++;
                break;
            case 'G':
                cnt[j][2]++;
                break;
            case 'T':
                cnt[j][3]++;
                break;
            }
        }
//
//        FXA(j,0,n) {
//            FXA(i,0,4)
//            printf("%d ", cnt[j][i]);
//            puts("");
//        }
        int t;
        FXA(j,0,n) {
            int maxxx=0;
            FXA(i,0,4) {
                if(cnt[j][i]!=0) {
                    cntt += cnt[j][i];
                    if(maxxx < cnt[j][i]) {
                        maxxx = cnt[j][i];
                        t = i;
                    }
                }
            }
//            cout<<"maxxx:"<<t<<endl;
            cntt -= maxxx;
            printf("%c", anss[t]);
        }
        puts("");
        printf("%d\n", cntt);

    }
    return 0;
}














0 0