Submission #1014845

#TimeUsernameProblemLanguageResultExecution timeMemory
1014845ByeWorldDango Maker (JOI18_dango_maker)C++14
33 / 100
414 ms262144 KiB
#include <bits/stdc++.h> #pragma GCC optimize("O3", "unroll-loops") #define ll long long // #define int long long #define pb push_back #define fi first #define se second #define lf (id<<1) #define rg ((id<<1)|1) #define md ((l+r)>>1) #define ld long double using namespace std; typedef pair<int,int> pii; typedef pair<int, pii> ipii; const int MAXN = 3010; const int MAXA = 9e6+10; const int INF = 1e9+10; const int LOG = 19; const int MOD = 1e9+7; const int SQRT = 450; const vector<int> NOL = {}; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); const vector<int> dx = {1, -1, 0, 0}; const vector<int> dy = {0, 0, 1, -1}; int n, m; char a[MAXN][MAXN]; int b[MAXN][MAXN], cnt; vector <int> adj[MAXA]; void add(int x, int y){ adj[x].pb(y); adj[y].pb(x); } int day, mat[MAXA], vis[MAXA]; bool done[MAXA]; bool dfs(int nw){ if(vis[nw] == day) return 0; vis[nw] = day; for(auto nx : adj[nw]){ if(mat[nx]==0 || dfs(mat[nx])){ mat[nx] = nw; return 1; } } return 0; } signed main(){ // ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n >> m; for(int i=1; i<=n; i++) for(int j=1; j<=m; j++) cin >> a[i][j]; for(int i=1; i<=n; i++){ for(int j=1; j<=m-2; j++){ if(a[i][j]=='R' && a[i][j+1]=='G' && a[i][j+2]=='W'){ b[i][j] = ++cnt; b[i][j+1] = cnt; b[i][j+2] = cnt; } } } int num = cnt; for(int i=1; i<=n-2; i++){ for(int j=1; j<=m; j++){ if(a[i][j]=='R' && a[i+1][j]=='G' && a[i+2][j]=='W'){ ++cnt; add(cnt, b[i][j]); add(cnt, b[i+1][j]); add(cnt, b[i+2][j]); } } } int ANS = 0; for(int i=1; i<=num; i++){ for(auto nx : adj[i]){ if(mat[nx] == 0){ mat[nx] = i; done[i] = 1; ANS++; break; } } } for(int i=1; i<=num; i++){ if(done[i]) continue; day++; ANS += dfs(i); } cout << cnt-ANS << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...