Submission #1158723

#TimeUsernameProblemLanguageResultExecution timeMemory
1158723blickDango Maker (JOI18_dango_maker)C++20
0 / 100
0 ms328 KiB
#include <bits/stdc++.h>
#define F first
#define S second
#define ll long long
using namespace std;
int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n, m;
    cin>>n>>m;
    vector<vector<short>> a(n, vector<short> (m)), b(n, vector<short> (m));
    for(int i = 0; i < n; i++) {
        for(int j = 0; j < m; j++) {
            char c;
            cin>>c;
            if(c=='R') a[i][j]=1;
            if(c=='G') a[i][j]=2;
            if(c=='W') a[i][j]=3;
        }
    }
    int ans = 0;
    for(int i = 0; i < n; i++) {
        int cnt[4];
        cnt[1]=0, cnt[2]=0, cnt[3]=0;
        for(int j = 0; j < m; j++) {
            b[i][j]=a[i][j];
            cnt[a[i][j]]++;
            if(j>2) {
                cnt[a[i][j-3]]--;
            }
            if(j>=2) {
                if(cnt[1]==cnt[2]&&cnt[1]==cnt[3]&&cnt[1]==1) {
                    if(j>2)
                    if(b[i][j-3]==0) continue;
                    ans++;
                    for(int k = 0; k < 3; k++) {
                        if(j-k>=0)
                        b[i][j-k]=0;
                    }
                }
            }
        }
    }
    a=b;
    for(int i = 0; i < m; i++) {
        int cnt[4];
        cnt[1]=0, cnt[2]=0, cnt[3]=0;
        for(int j = 0; j < n; j++) {
            cnt[a[j][i]]++;
            if(j>2) {
                cnt[a[j-3][i]]--;
            }
            if(j>=2) {
                if(cnt[1]==cnt[2]&&cnt[1]==cnt[3]&&cnt[1]==1) {
                    if(b[j-2][i]==0) continue;
                    ans++;
                    // cout<<i<<' '<<j<<'\n';
                    for(int k = 0; k < 3; k++) {
                        if(j-k>=0)
                        b[j-k][i]=0;
                    }
                }
            }
        }
    }
    cout<<ans<<'\n';
    
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...