제출 #254716

#제출 시각아이디문제언어결과실행 시간메모리
254716egekabasDango Maker (JOI18_dango_maker)C++14
13 / 100
1 ms384 KiB
#include <bits/stdc++.h> #define ff first #define ss second #define pb push_back #define mp make_pair using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; typedef pair<ll, ll> pll; typedef pair<ull, ull> pull; typedef pair<int, int> pii; typedef pair<ld, ld> pld; int n, m; int a[3009][3009]; int cl(int x, int y){ return(x >= 0 && y >= 0 && a[x][y] == 1 && a[x][y+1] == 2 && a[x][y+2] == 3); } int cd(int x, int y){ return(x >= 0 && y >= 0 && a[x][y] == 1 && a[x+1][y] == 2 && a[x+2][y] == 3); } int ans = 0; void fl(int x, int y){ if(!cl(x, y)) return; ++ans; a[x][y] = a[x][y+1] = a[x][y+2] = 0; } void fd(int x, int y){ if(!cd(x, y)) return; ++ans; a[x][y] = a[x+1][y] = a[x+2][y] = 0; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); //freopen("in.txt", "r", stdin); //freopen("out.txt", "w", stdout); cin >> n >> m; string s; for(int i = 0; i < n; ++i){ cin >> s; for(int j = 0; j < m; ++j){ if(s[j] == 'R') a[i][j] = 1; else if(s[j] == 'G') a[i][j] = 2; else a[i][j] = 3; } } for(int i = 0; i < n; ++i) for(int j = 0; j < m; ++j){ if(a[i][j] != 2) continue; int val1 = cl(i, j-1)+cl(i-1, j)+cl(i+1, j-2); int val2 = cd(i, j-1)+cd(i-1, j)+cd(i-2, j+1); if(val1 > val2){ fl(i, j-1); fl(i-1, j); fl(i+1, j-2); } else{ fd(i, j-1); fd(i-1, j); fd(i-2, j+1); } } cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...