提出 #70786449


ソースコード 拡げる

#include<bits/stdc++.h>
//bool Mst;
using namespace std;
using ll=long long;
using ld=long double;
//#define int ll
using pii=pair<int,int>;
const int inf=1e9;
pii sb[]={pii{0,1},pii{1,0},pii{0,-1},pii{-1,0}};
//bool Med;
signed main()
{
//	cerr<<"Memory Size: "<<abs((&Med)-(&Mst))/1024.0/1024<<" MB\n";
//	ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
//	freopen("in.in","r",stdin);
//	freopen("out.out","w",stdout);
	int t;cin>>t;
	while(t--) [&]()
	{
		int n,m;
		cin>>n>>m;
		vector<vector<array<int,4>>> dis(n,vector<array<int,4>>(m,{inf,inf,inf,inf}));
		struct node
		{
			int x,y,dir,d;
		};
		auto upd=[&](node nd)->int
		{
			auto [x,y,dir,d]=nd;
			if(dis[x][y][dir]>d) return dis[x][y][dir]=d,1;
			return 0;
		};
		deque<node> dq;
		vector<string> mp(n);
		for(int i=0;i<n;i++) cin>>mp[i];
		if(mp[0][0]=='A') dq.push_back({0,0,0,0});
		else if(mp[0][0]=='B') dq.push_back({0,0,1,0});
		else if(mp[0][0]=='C') dq.push_back({0,0,3,0});
		for(int dir:{0,1,2,3}) dq.push_back({0,0,dir,1});
		while(dq.size())
		{
			auto nd=dq.front();dq.pop_front();
			auto [x,y,dir,d]=nd;
			if(!upd(nd)) continue;
			int xx=x+sb[dir].first,yy=y+sb[dir].second;
			if(xx>=n||yy>=m||xx<0||yy<0) continue;
			if(mp[xx][yy]=='A') dq.push_front({xx,yy,dir,d});
			else if(mp[xx][yy]=='B') dq.push_front({xx,yy,dir^1,d});
			else if(mp[xx][yy]=='C') dq.push_front({xx,yy,3-dir,d});
			for(int dir:{0,1,2,3}) dq.push_back({xx,yy,dir,d+1});
		}
		cout<<dis[n-1][m-1][0]<<"\n";
	}();
	return 0;
}

提出情報

提出日時
問題 E - Reflection on Grid
ユーザ wangyizhi
言語 C++23 (GCC 15.2.0)
得点 500
コード長 1541 Byte
結果 AC
実行時間 83 ms
メモリ 46212 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 500 / 500
結果
AC × 1
AC × 36
セット名 テストケース
Sample 00_sample_00.txt
All 00_sample_00.txt, 01_test_00.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt
ケース名 結果 実行時間 メモリ
00_sample_00.txt AC 1 ms 3424 KiB
01_test_00.txt AC 83 ms 3580 KiB
01_test_01.txt AC 54 ms 3488 KiB
01_test_02.txt AC 48 ms 3600 KiB
01_test_03.txt AC 48 ms 3376 KiB
01_test_04.txt AC 46 ms 3552 KiB
01_test_05.txt AC 45 ms 4148 KiB
01_test_06.txt AC 43 ms 4928 KiB
01_test_07.txt AC 45 ms 5472 KiB
01_test_08.txt AC 26 ms 9556 KiB
01_test_09.txt AC 42 ms 20552 KiB
01_test_10.txt AC 38 ms 8060 KiB
01_test_11.txt AC 48 ms 13564 KiB
01_test_12.txt AC 41 ms 7412 KiB
01_test_13.txt AC 47 ms 11028 KiB
01_test_14.txt AC 45 ms 6720 KiB
01_test_15.txt AC 48 ms 7932 KiB
01_test_16.txt AC 48 ms 11128 KiB
01_test_17.txt AC 50 ms 10560 KiB
01_test_18.txt AC 63 ms 38184 KiB
01_test_19.txt AC 59 ms 31876 KiB
01_test_20.txt AC 28 ms 20244 KiB
01_test_21.txt AC 22 ms 9544 KiB
01_test_22.txt AC 46 ms 33876 KiB
01_test_23.txt AC 40 ms 20684 KiB
01_test_24.txt AC 30 ms 8020 KiB
01_test_25.txt AC 38 ms 13512 KiB
01_test_26.txt AC 35 ms 6788 KiB
01_test_27.txt AC 37 ms 7892 KiB
01_test_28.txt AC 59 ms 45796 KiB
01_test_29.txt AC 38 ms 7092 KiB
01_test_30.txt AC 40 ms 7228 KiB
01_test_31.txt AC 41 ms 32908 KiB
01_test_32.txt AC 42 ms 32856 KiB
01_test_33.txt AC 58 ms 46212 KiB
01_test_34.txt AC 59 ms 46088 KiB