Submission #719467

# Submission time Handle Problem Language Result Execution time Memory
719467 2023-04-06T03:19:36 Z YeoBL Dango Maker (JOI18_dango_maker) C++14
0 / 100
107 ms 262144 KB
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define ii pair <int, int>
#define rep(i,n) for(int i = 0; i <n; i++)
#define pb push_back
#define f first
#define s second
#define debug(x) cout<<#x<<' '<<x<<endl;
int n,m;
const int MAX_N = 3005, MAX_M = 3005;
vector<int> adj[(MAX_N*MAX_M/3+5)],vs[MAX_N+5][MAX_M+5];
bool vis[(MAX_N * MAX_M+5)]={};
int main(){
    ios_base::sync_with_stdio(false);cin.tie(0);
    cin>>n>>m;
    char a[n+5][m+5];
    rep(i,n)rep(j,m){
        cin>>a[i][j];
    }
    int nd=0;
    rep(i,n)rep(j,m){
        if(a[i][j]!='R')continue;
        if(i<n-2&&a[i+1][j]=='G'&&a[i+2][j]=='W'){
            for(auto it: vs[i][j]){
                adj[it].pb(nd);
                adj[nd].pb(it);
            }
            vs[i][j].pb(nd);
            for(auto it: vs[i+1][j]){
                adj[it].pb(nd);
                adj[nd].pb(it);
            }
            for(auto it: vs[i+2][j]){
                adj[it].pb(nd);
                adj[nd].pb(it);
            }
            vs[i+1][j].pb(nd);
            vs[i+2][j].pb(nd);
            nd++;
        }
        if(j<m-2&&a[i][j+1]=='G'&&a[i][j+2]=='W'){
            for(auto it: vs[i][j]){
                adj[it].pb(nd);
                adj[nd].pb(it);
            }
            vs[i][j].pb(nd);
            for(auto it: vs[i][j+1]){
                adj[it].pb(nd);
                adj[nd].pb(it);
            }
            for(auto it: vs[i][j+2]){
                adj[it].pb(nd);
                adj[nd].pb(it);
            }
            vs[i][j+1].pb(nd);
            vs[i][j+2].pb(nd);
            nd++;
        }
        //cout<<i<<' '<<j<<' '<<nd<<endl;
    }
    vector<ii> v; 
    rep(i,nd){
        v.pb({adj[i].size(),i});
    }
    sort(v.begin(), v.end());
    int ans=0;
    for(auto it: v){
        if(vis[it.s])continue;
        //cout<<it.s<<endl;
        for(auto tt: adj[it.s]){
            vis[tt]=true;
            //debug(tt);
        }
        ans++;
    }
    //cout<<nd<<endl;
    cout<<ans;
}
# Verdict Execution time Memory Grader output
1 Runtime error 107 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 107 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Runtime error 107 ms 262144 KB Execution killed with signal 9
2 Halted 0 ms 0 KB -