結果

問題 No.2928 Gridpath
ユーザー nouka28nouka28
提出日時 2024-10-12 15:15:41
言語 C++23
(gcc 12.3.0 + boost 1.83.0)
結果
AC  
実行時間 6 ms / 2,000 ms
コード長 959 bytes
コンパイル時間 5,433 ms
コンパイル使用メモリ 311,620 KB
実行使用メモリ 5,248 KB
最終ジャッジ日時 2024-10-12 15:15:49
合計ジャッジ時間 6,243 ms
ジャッジサーバーID
(参考情報)
judge4 / judge2
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 AC 2 ms
5,248 KB
testcase_01 AC 2 ms
5,248 KB
testcase_02 AC 6 ms
5,248 KB
testcase_03 AC 2 ms
5,248 KB
testcase_04 AC 2 ms
5,248 KB
testcase_05 AC 2 ms
5,248 KB
testcase_06 AC 2 ms
5,248 KB
testcase_07 AC 2 ms
5,248 KB
testcase_08 AC 2 ms
5,248 KB
testcase_09 AC 2 ms
5,248 KB
testcase_10 AC 2 ms
5,248 KB
testcase_11 AC 2 ms
5,248 KB
testcase_12 AC 2 ms
5,248 KB
testcase_13 AC 2 ms
5,248 KB
testcase_14 AC 2 ms
5,248 KB
testcase_15 AC 3 ms
5,248 KB
testcase_16 AC 4 ms
5,248 KB
testcase_17 AC 3 ms
5,248 KB
testcase_18 AC 4 ms
5,248 KB
testcase_19 AC 4 ms
5,248 KB
testcase_20 AC 2 ms
5,248 KB
testcase_21 AC 5 ms
5,248 KB
testcase_22 AC 5 ms
5,248 KB
権限があれば一括ダウンロードができます

ソースコード

diff #

#include<bits/stdc++.h>
using namespace std;

#include<atcoder/all>
using namespace atcoder;
using mint=atcoder::modint998244353;

#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")

#define int long long

int di[]={-1,0,1,0};
int dj[]={0,-1,0,1};

signed main(){
	int h,w;cin>>h>>w;
	int si,sj;cin>>si>>sj;
	int gi,gj;cin>>gi>>gj;
	si--;sj--;
	gi--;gj--;

	auto dfs=[&](auto dfs,vector<pair<int,int>> vec)->int {
		if(vec.back()==pair<int,int>{gi,gj}){
			return 1;
		}

		
		auto[pi,pj]=vec.back();

		int ans=0;

		for(int i=0;i<4;i++){
			int ni=pi+di[i];
			int nj=pj+dj[i];

			if(0<=ni&&ni<h&&0<=nj&&nj<w){
				bool flg=0;

				vec.pop_back();

				for(auto&&e:vec){
					if(abs(e.first-ni)+abs(e.second-nj)==1){
						flg=1;
						break;
					}
				}

				vec.push_back({pi,pj});

				if(!flg){
					vec.push_back({ni,nj});
					ans+=dfs(dfs,vec);
					vec.pop_back();
				}
			}
		}

		return ans;
	};

	cout<<dfs(dfs,{{si,sj}})<<endl;
}
0