Submission #1216485

#TimeUsernameProblemLanguageResultExecution timeMemory
1216485gabyferaqTetris (COCI17_tetris)C++20
56 / 80
0 ms328 KiB
#include<bits/stdc++.h>
using namespace std;
void solve()
{
    int n,m; cin>>n>>m;
    vector<vector<char>> ma(n,vector<char> (m));
    vector<vector<bool>> vis(n,vector<bool> (m,false));
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        cin>>ma[i][j];
    }
    int c,l,fi,fd,t;
    c=l=fi=fd=t=0;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(ma[i][j]!='.'&&vis[i][j]==false)
            {
                if(ma[i][j]==ma[i][j+1]&&ma[i][j]==ma[i+1][j]&&ma[i][j]==ma[i+1][j+1])
                {
                    c++, vis[i][j]=vis[i][j+1]=vis[i+1][j]=vis[i+1][j+1]=true;
                    continue;
                }
                if(ma[i][j]==ma[i][j+1]&&ma[i][j]==ma[i][j+2]&&ma[i][j]==ma[i][j+3])
                {
                    l++, vis[i][j]=vis[i][j+1]=vis[i][j+2]=vis[i][j+3]=true;
                    continue;
                }
                if(ma[i][j]==ma[i+1][j]&&ma[i][j]==ma[i+1][j-1]&&ma[i][j]==ma[i][j+1])
                {
                    fi++, vis[i][j]=vis[i+1][j]=vis[i+1][j-1]=vis[i][j+1]=true;
                    continue;
                }
                if(ma[i][j]==ma[i][j+1]&&ma[i][j]==ma[i+1][j+1]&&ma[i][j]==ma[i+1][j+2])
                {
                    fd++, vis[i][j]=vis[i][j+1]=vis[i+1][j+1]=vis[i+1][j+2]=true;
                    continue;
                }
                if(ma[i][j]==ma[i+1][j+1]&&ma[i][j]==ma[i+1][j]&&ma[i][j]==ma[i+1][j-1])
                {
                    t++, vis[i][j]=vis[i+1][j+1]=vis[i+1][j-1]=vis[i+1][j]=true;
                    continue;
                }
                if(ma[i][j]==ma[i][j+1]&&ma[i][j]==ma[i][j+2]&&ma[i][j]==ma[i+1][j+1])
                {
                    t++, vis[i][j]=vis[i+1][j+1]=vis[i][j+1]=vis[i][j+2]=true;
                    continue;
                }
                if(ma[i][j]==ma[i+2][j]&&ma[i][j]==ma[i+1][j]&&ma[i][j]==ma[i+1][j-1])
                {
                    t++, vis[i][j]=vis[i+2][j]=vis[i+1][j-1]=vis[i+1][j]=true;
                    continue;
                }
                if(ma[i][j]==ma[i+2][j]&&ma[i][j]==ma[i+1][j]&&ma[i][j]==ma[i+1][j+1])
                {
                    t++, vis[i][j]=vis[i+2][j]=vis[i+1][j+1]=vis[i+1][j]=true;
                    continue;
                }
                if(ma[i][j]==ma[i+1][j]&&ma[i][j]==ma[i+1][j+1]&&ma[i][j]==ma[i+2][j+1])
                {
                    fi++, vis[i][j]=vis[i+1][j]=vis[i+1][j+1]=vis[i+2][j+1]=true;
                    continue;
                }
                if(ma[i][j]==ma[i+1][j]&&ma[i][j]==ma[i+1][j-1]&&ma[i][j]==ma[i+2][j-1])
                {
                    fd++, vis[i][j]=vis[i+1][j]=vis[i+1][j-1]=vis[i+2][j-1]=true;
                    continue;
                }
                if(ma[i][j]==ma[i+1][j]&&ma[i][j]==ma[i+2][j]&&ma[i][j]==ma[i+3][j])
                {
                    l++, vis[i][j]=vis[i+1][j]=vis[i+2][j]=vis[i+3][j]=true;
                    continue;
                }
            }
        }
    }
    cout<<c<<endl;
    cout<<l<<endl;
    cout<<fi<<endl;
    cout<<fd<<endl;
    cout<<t;
}
int main()
{
    solve();
}
#Verdict Execution timeMemoryGrader output
Fetching results...