17-1-31-C

#include<iostream>
#include<cstdio>
#include<string>
#include<cctype>
#include<algorithm>
using namespace std;
int main()
{
    int m,n,ans;
    int dls[100][3];
    string s;
    while(cin>>n>>m){
        ans=100;
        for(int j=0;j<n;j++){
            cin>>s;
            dls[j][0]=dls[j][1]=dls[j][2]=100;//设为100而不是很大的值方便下面比较,如果设为很大的值,注意溢出之后是负数
            for(int i=0;i<m;i++){
                if(isdigit(s[i]))
                    dls[j][0]=min(dls[j][0],min(i,m-i));
                else if(islower(s[i]))
                    dls[j][1]=min(dls[j][1],min(i,m-i));
                else
                    dls[j][2]=min(dls[j][2],min(i,m-i));
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<n;j++){
                if(i!=j)
                    for(int k=0;k<n;k++){
                        if(i!=k&&j!=k){
                            ans=min(ans,dls[i][0]+dls[j][1]+dls[k][2]);//dls[i][0]+dls[j][1]+dls[k][2]设为很大时,注意溢出是负数
                        }
                }
            }
        }
        cout<<ans<<endl;
    }
    return 0;
}
做题笔记,只是想积累看看四年之后写了AC了多少题。
原文地址:https://www.cnblogs.com/ooozy/p/6360365.html