UVA 1368水問題

各列の列挙位置は、表示される文字の最大数を見つけます

書式#include <iostreamの>
書式#include <文字列>
書式#include <マップ>
書式#include <cstdioを>
書式#include <ベクトル>
書式#include <アルゴリズム>
#include <assert.h>
書式#include <CStringの>
名前空間stdを使用。
(I、B)(; I <(B); ++ iは(A)= INT)のために_forの#define
#define _rep(I、B)(iは(A)= int型、iが(B)= <; ++ i)が用
チャーS [60] [1050]。
マップ<int型、char型>融点;
{int型のmain()
    mp[0] = 'A';
    mp[1] = 'C';
    mp[2] = 'G';
    mp[3] = 'T';
    int型T;
    CIN >> T;
    一方、(T - ){
        INTのN、M、CNT = 0。
        CIN >> N >> M。
        _for(I、0、N){
            scanf関数( "%sの"、S [I])。
        }
        文字列ANS = "";
        _for(I、0、m)の{
            INT [4] = {0}。
            _for(j、0、N){
                スイッチ(S [j] [i])と{
                    ケース 'A':
                        [0] ++;
                        ブレーク;
                    ケース 'C':
                        [1] ++;
                        ブレーク;
                    ケース 'G':
                        [2] ++;
                        ブレーク;
                    ケース 'T':
                        [3] ++;
                        ブレーク;
                }
            }
            INTインデックス= 0、NUM = [0]。
            (I、1、4)_for
            {
                IF([I]> NUM)
                {
                    確実= [I]。
                    インデックス= I;
                }
            }
            = CNT +(N - NO)。
            ans.append(1、MP [インデックス])。
        }
        coutの<< ANS <<てendl;
        coutの<< CNT <<てendl;
    }
    0を返します。
}

おすすめ

転載: www.cnblogs.com/zlwjy/p/11563935.html