제출 #70182

#제출 시각아이디문제언어결과실행 시간메모리
701823zpDango Maker (JOI18_dango_maker)C++14
13 / 100
155 ms141960 KiB
#include<bits/stdc++.h>
#define maxn 500009
using namespace std;
string s[3009];
int A[3009][3009];
int B[3009][3009];
int a[3009][3009];
int b[3009][3009];
int k, Bl, Wi;
vector<int> v[6000009];
int f[6000009];
void dfs(int x, int c){
    f[x] = 1;
    if(c == 1) Wi++;
    else Bl++;
    for(int i = 0; i < v[x].size(); i++)
        if(!f[v[x][i]])dfs(v[x][i], 1 - c);
}
main(){
    int n, m;
    cin >> n >> m;
    for(int i = 0; i < n; i++){
        cin >> s[i];
    }
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            if(j + 2 < m && s[i][j] == 'R'
                         && s[i][j+1] == 'G'
                         && s[i][j+2] == 'W')
            A[i][j] = 1, a[i][j] = ++k;
            if(i + 2 < n && s[i][j] == 'R'
                         && s[i+1][j] == 'G'
                         && s[i+2][j] == 'W')
            B[i][j] = 1, b[i][j] = ++k;
        }
    }
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            if(A[i][j])
            {  if (i >= 1 && B[i-1][j+1])
                {
                    v[a[i][j]].push_back(b[i-1][j+1]);
                    v[b[i-1][j+1]].push_back(a[i][j]);
                }
               if(i >= 2 && B[i-2][j+2]){
                    v[a[i][j]].push_back(b[i-2][j+2]);
                    v[b[i-2][j+2]].push_back(a[i][j]);

               }
               if(B[i][j]){
                    v[a[i][j]].push_back(b[i][j]);
                    v[b[i][j]].push_back(a[i][j]);
               }
            }
        }
    }
    int ans = 0;
    for(int i = 1; i <= k; i++){
        if(f[i] == 0){
            Bl = 0;
            Wi = 0;
            dfs(i, 0);
            ans += max(Bl,Wi);
        }
    }
    cout << ans << endl;

}

컴파일 시 표준 에러 (stderr) 메시지

dango_maker.cpp: In function 'void dfs(int, int)':
dango_maker.cpp:16:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for(int i = 0; i < v[x].size(); i++)
                    ~~^~~~~~~~~~~~~
dango_maker.cpp: At global scope:
dango_maker.cpp:19:6: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
 main(){
      ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...