제출 #151895

#제출 시각아이디문제언어결과실행 시간메모리
151895phillipTetris (COCI17_tetris)C++14
0 / 80
3 ms376 KiB
#include <bits/stdc++.h> using namespace std; char g[20][20]; bool vis[20][20]; int f[5],n,m; bool issq(int x,int y) { char c=g[x][y]; for(int i=x;i<x+4;i++) { if(g[i][y]!=c)break; if(i==x+3) { f[1]++; for(int i=x;i<x+4;i++)vis[i][y]=1; return true; } } for(int i=y;i<y+4;i++) { if(g[x][i]!=c)break; if(i==y+3) { f[1]++; for(int i=y;i<y+4;i++)vis[x][i]=1; return true; } } return false; } bool isc(int x,int y) { char c=g[x][y]; if(g[x+1][y]==c&&g[x][y+1]==c&&g[x+1][y+1]==c) { f[0]++; return true; } return false; } int main() { for(int i=0;i<20;i++) { for(int j=0;j<20;j++)g[i][j]='.'; } cin>>n>>m; for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { cin>>g[i][j]; } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { if(g[i][j]=='.')continue; if(vis[i][j])continue; vis[i][j]=1; if(isc(i,j))continue; if(issq(i,j))continue; f[3]++; char c=g[i][j]; int x=i,y=j; while(g[x][y]==c) { vis[x][y]=1; if(g[x+1][y]==c)x++; else y++; } } } for(int i=0;i<5;i++) { cout<<f[i]<<"\n"; } }
#Verdict Execution timeMemoryGrader output
Fetching results...