Submission #116101

#TimeUsernameProblemLanguageResultExecution timeMemory
116101faustaadpDango Maker (JOI18_dango_maker)C++17
13 / 100
4 ms384 KiB
#include<bits/stdc++.h> typedef long long ll; #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; ll n,m,i,j,has; char a[3030][3030]; int p[9000010]; int x[9000010]; int y[9000010]; int X[9000010]; int Y[9000010]; ll car(ll aa) { if(p[aa]==aa) return aa; else return p[aa]=car(p[aa]); } void gab(ll aa,ll bb) { p[car(aa)]=car(bb); } int main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin>>n>>m; for(i=1;i<=n;i++) for(j=1;j<=m;j++) { p[(i-1)*m+j]=(i-1)*m+j; cin>>a[i][j]; } for(i=1;i<=n;i++) for(j=1;j<=m;j++) { if(j+2<=m&&a[i][j]=='R'&&a[i][j+1]=='G'&&a[i][j+2]=='W') { has++; x[(i-1)*m+j]++; gab((i-1)*m+j,(i-1)*m+j+1); gab((i-1)*m+j,(i-1)*m+j+2); gab((i-1)*m+j+1,(i-1)*m+j+2); } if(i+2<=n&&a[i][j]=='R'&&a[i+1][j]=='G'&&a[i+2][j]=='W') { has++; y[(i-1)*m+j]++; gab((i-1)*m+j,i*m+j); gab((i+1)*m+j,i*m+j); gab((i-1)*m+j,i*m+(j+1)); } } for(i=1;i<=n*m;i++) { X[car(i)]+=x[i]; Y[car(i)]+=y[i]; } for(i=1;i<=n*m;i++) has-=min(X[i],Y[i]); cout<<has<<"\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...