제출 #1115507

#제출 시각아이디문제언어결과실행 시간메모리
1115507staszic_ojuzDango Maker (JOI18_dango_maker)C++17
13 / 100
1 ms508 KiB
#include <bits/stdc++.h>
using namespace std;

vector<string> plansza;
int64_t tab[3001][3001];

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n, m;
    cin >> n >> m;
    for(int i = 0; i < n; i++){
        string s;
        cin >> s;
        plansza.push_back(s);
    }
    int64_t wyn = 0;
    for(int i = n - 1; i >= 0; i--){
        for(int j = m - 1; j >= 0; j--){
            if(plansza[i][j] == 'R'){
                if(i < n - 2){
                    if(plansza[i + 1][j] == 'G' && plansza[i + 2][j] == 'W'){
                        if(tab[i + 1][j] == 0){
                            if(tab[i + 2][j] == 0){
                                tab[i][j]++;
                                tab[i + 1][j] = j + i * 3001;
                                tab[i + 2][j] = j + i * 3001;
                            }else{
                                if(tab[i + 2][j - 1] == 0){
                                    tab[i][j]++;
                                }
                            }
                        }else{
                            if(tab[i + 2][j] == 0){
                                tab[i + 1][j] = 0;
                            }
                        }

                    }
                }
                if(j < m - 2 && tab[i][j] == 0){
                    if(plansza[i][j + 1] == 'G' && plansza[i][j + 2] == 'W'){
                        tab[i][j]++;
                        tab[i][j + 1] = j + i * 3001;
                        tab[i][j + 2] = j + i * 3001;
                    }
                }
            int64_t jeden = 1;
            wyn += min(jeden, tab[i][j]);
            }
        }
    }
    cout << wyn;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...