제출 #1309802

#제출 시각아이디문제언어결과실행 시간메모리
1309802IrateTetris (COCI17_tetris)C++20
0 / 80
1 ms584 KiB
#include <bits/stdc++.h> using namespace std; int n, m; bool check(int x, int y){ return (0 <= x && x < n && 0 <= y && y < m); } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; vector<vector<char>>g(n, vector<char>(m)); for(int i = 0;i < n;++i){ for(int j = 0;j < m;++j){ cin >> g[i][j]; } } int say[5] = {}; for(int i = 0;i < n;++i){ for(int j = 0;j < m;++j){ if(g[i][j] == '.')continue; if(check(i + 1, j + 1) && \ g[i][j] == g[i + 1][j] && \ g[i + 1][j] == g[i][j + 1] && \ g[i][j + 1] == g[i + 1][j + 1]) { // g[i][j] = g[i + 1][j] = g[i][j + 1] = g[i + 1][j + 1] = '.'; say[0]++; } } } for(int i = 0;i < n;++i){ for(int j = 0;j < m;++j){ if(g[i][j] == '.')continue; if(check(i + 3, j) && \ g[i][j] == g[i + 1][j] && \ g[i + 1][j] == g[i + 2][j] && \ g[i + 2][j] == g[i + 3][j]) { // g[i][j] = g[i + 1][j] = g[i + 2][j] = g[i + 3][j] = '.'; say[1]++; } if(check(i, j + 3) && \ g[i][j] == g[i][j + 1] && \ g[i][j + 1] == g[i][j + 2] && \ g[i][j + 2] == g[i][j + 3]) { // g[i][j] = g[i][j + 1] = g[i][j + 2] = g[i][j + 3] = '.'; say[1]++; } } } for(int i = 0;i < n;++i){ for(int j = 0;j < m;++j){ if(g[i][j] == '.')continue; if(check(i - 1, j + 2) && \ g[i][j] == g[i][j + 1] && \ g[i][j + 1] == g[i - 1][j + 1] && \ g[i - 1][j + 1] == g[i - 1][j + 2]) { // g[i][j] = g[i][j + 1] = g[i - 1][j + 1] = g[i - 1][j + 2] = '.'; say[2]++; } if(check(i + 2, j + 1) && \ g[i][j] == g[i + 1][j] && \ g[i + 1][j] == g[i + 1][j + 1] && \ g[i + 1][j + 1] == g[i + 2][j + 1]) { // g[i][j] = g[i + 1][j] = g[i + 1][j + 1] = g[i + 2][j + 1] = '.'; say[2]++; } } } for(int i = 0;i < n;++i){ for(int j = 0;j < m;++j){ if(g[i][j] == '.')continue; if(check(i + 1, j + 2) && \ g[i][j] == g[i][j + 1] && \ g[i][j + 1] == g[i + 1][j + 1] && \ g[i + 1][j + 1] == g[i + 1][j + 2]) { // g[i][j] = g[i][j + 1] = g[i + 1][j + 1] = g[i + 1][j + 2] = '.'; say[3]++; } if(check(i + 2, j - 1) && \ g[i][j] == g[i + 1][j] && \ g[i + 1][j] == g[i + 1][j - 1] && \ g[i + 1][j - 1] == g[i + 2][j - 1]) { // g[i][j] = g[i + 1][j] = g[i + 1][j - 1] = g[i + 2][j - 1] = '.'; say[3]++; } } } for(int i = 0;i < n;++i){ for(int j = 0;j < m;++j){ if(g[i][j] != '.')say[4]++; } } say[4] /= 4; for(int i = 0;i < 5;++i){ cout << say[i] << '\n'; } }
#Verdict Execution timeMemoryGrader output
Fetching results...