競技プログラミング JOI 薄氷渡り WAの原因

JOIの薄氷渡りという問題を正解することができません。
https://atcoder.jp/contests/joi2009yo/tasks/joi2009yo_d
どのようにすれば正答を得ることができますか?

C++

#include <bits/stdc++.h> using namespace std;using Node = vector<vector<int>>;vector<int> dxs ={1,0,-1,0}; vector<int> dys ={0,1,0,-1}; int n,m;int ans = 0;// 深さ優先探索vector<bool> seen;void dfs(int x,int y,int v,vector<vector<int>> &G) { G[x][y] = 0; v++; ans = max(v,ans); for(int i = 0; i < 4; i++){ int x2 = x + dxs[i]; int y2 = y + dys[i]; if((0 <= x2 && x2 < x) && (0 <= y2 && y2 < y)){ if(G[x2][y2] == 1){ dfs(x2,y2,v,G); } } }G[x][y] = 1;} int main() { cin >> n >> m; vector<vector<int>> G(n,vector<int>(m)); for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){ cin >> G[i][j]; } } for(int i = 0; i < n; i++){for(int j = 0; j < m; j++){ if(G[i][j]==1){ dfs(i,j,0,G);}} } cout << ans;}

コメントを投稿

0 コメント