제출 #1289614

#제출 시각아이디문제언어결과실행 시간메모리
1289614mefe123Dango Maker (JOI18_dango_maker)C++20
13 / 100
2 ms588 KiB
#include <iostream> #include <vector> #include <string> #include <algorithm> #include <cmath> #include <map> #include <set> #include <queue> #include <stack> #include <unordered_map> #include <unordered_set> #include <bitset> #include <numeric> #include <functional> #include <iomanip> #include <sstream> using namespace std; #define int long long #define pb push_back vector<int> vivi; int l=0,r=0; void dfs(int node, vector<vector<int>> &adj, vector<int> &viss, int ayrac){ viss[node]=1; if(node<ayrac){ if(vivi[node]==0){ l++; vivi[node]=1; } } else { if(vivi[node]==0){ r++; vivi[node]=1; } } for(auto go: adj[node]){ if(viss[go]==0){ dfs(go, adj, viss, ayrac); } } } void solve(){ int n,m; cin>>n>>m; vector<vector<char>> arr(n, vector<char>(m)); vector<vector<int>> vis(n, vector<int>(m,0)); for(int i=0;i<n;i++){ for(int j=0;j<m;j++) cin>>arr[i][j]; } int cevap=0; int idx=1; for(int i=0;i<n;i++){ for(int j=0;j<m-2;j++){ if(arr[i][j]=='R' && arr[i][j+1]=='G' && arr[i][j+2]=='W'){ vis[i][j]=idx; vis[i][j+1]=idx; vis[i][j+2]=idx; idx++; } } } int ayrac=idx; vector<vector<int>> adj(n*m*2); for(int j=0;j<m;j++){ for(int i=0;i<n-2;i++){ if(arr[i][j]=='R'&& arr[i+1][j]=='G'&& arr[i+2][j]=='W'){ int curr = idx; if(vis[i][j]) { adj[curr].pb(vis[i][j]); adj[vis[i][j]].pb(curr); } if(vis[i+1][j]) { adj[curr].pb(vis[i+1][j]); adj[vis[i+1][j]].pb(curr); } if(vis[i+2][j]) { adj[curr].pb(vis[i+2][j]); adj[vis[i+2][j]].pb(curr); } idx++; } } } vector<int> viss(idx,0); vivi.resize(idx,0); for(int i=1;i<ayrac;i++){ if(viss[i]==0){ l=0; r=0; dfs(i, adj, viss, ayrac); cevap += max(l,r); } } for(int i=ayrac;i<idx;i++){ if(viss[i]==0){ l=0; r=0; dfs(i, adj, viss, ayrac); cevap+=max(l,r); } } cout<<cevap; } signed main(){ ios::sync_with_stdio(false); cin.tie(nullptr); solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...