Submission #1831

#TimeUsernameProblemLanguageResultExecution timeMemory
1831alephnull토마토 (3차원) (KOI13_tomato3D)C++98
20 / 20
209 ms6620 KiB
#include <cstdio> #include <queue> #include <utility> using namespace std; int main(){ int m,n,h;scanf("%d %d %d",&m,&n,&h); int table[n][m][h]; for(int k=0;k<h;k++) for(int i=0;i<n;i++) for(int j=0;j<m;j++) scanf("%d",&table[i][j][k]); queue< pair< pair<int,int>,pair<int,int> > > q; for(int i=0;i<n;i++) for(int j=0;j<m;j++) for(int k=0;k<h;k++) if(table[i][j][k]==1) q.push(make_pair(make_pair(i,j),make_pair(k,0))); int ans=0; while(!q.empty()){ int z=q.front().second.first; int y=q.front().first.first; int x=q.front().first.second; int level=q.front().second.second; int dz[6]={1,0,0,0,0,-1}; int dy[6]={0,1,-1,0,0,0}; int dx[6]={0,0,0,1,-1,0}; if(level>ans)ans=level; for(int i=0;i<6;i++){ int zz=z+dz[i]; int yy=y+dy[i]; int xx=x+dx[i]; if(zz<h&&zz>=0&&yy<n&&yy>=0&&xx<m&&xx>=0) if(table[yy][xx][zz]==0){ table[yy][xx][zz]=1; q.push(make_pair(make_pair(yy,xx),make_pair(zz,level+1))); //printf("%d %d\n",yy,xx); } } q.pop(); } for(int i=0;i<n;i++) for(int j=0;j<m;j++) for(int k=0;k<h;k++) if(table[i][j][k]==0)ans=-1; printf("%d",ans); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...