【中】肿瘤诊断

发布时间:2019年03月17日 阅读:322 次

#include<bits/stdc++.h>

using namespace std;

struct node

{

    int z,x,y;

};

int m,n,l,t;

int dx[]= {1,-1,0,0,0,0};

int dy[]= {0,0,1,-1,0,0};

int dz[]= {0,0,0,0,1,-1};

bool tu[70][1400][130]= {0};

int pan(int z,int x,int y)

{

    if(z>=0&&z<l&&x>=0&&x<m&&y>=0&&y<n&&tu[z][x][y])

    {

        return 1;

    }

    else return 0;

}

int bfs(int z,int x,int y)

{

    int sum = 1;

    queue<node>o;

    o.push(node{z,x,y});

    tu[z][x][y] = 0;

    while(!o.empty())

    {

        node tt = o.front();

        o.pop();

        for(int i=0; i <6; i++)

        {

            int tz = tt.z+dz[i];

            int tx = tt.x+dx[i];

            int ty = tt.y+dy[i];

            if(pan(tz,tx,ty))

            {

                tu[tz][tx][ty] = 0;

                sum++;

                o.push(node{tz,tx,ty});

            }

        }

    }

    if(sum>=t)return sum;

    else return 0;

}

int main()

{


    cin>>m>>n>>l>>t;

    for(int i=0; i<l; i++)

    {

        for(int j=0; j<m; j++)

        {

            for(int k=0; k<n; k++)

            {

                int num;

                cin>>num;

                tu[i][j][k] = num;

            }

        }

    }

    int sum = 0;

    for(int i=0; i<l; i++)

    {

        for(int j=0; j<m; j++)

        {

            for(int k=0; k<n; k++)

            {

                if(tu[i][j][k])

                sum+=bfs(i,j,k);

            }

        }

    }

    cout<<sum<<endl;

    return 0;

}


Tag:
相关文章
发表评论

发表评论: