提出 #52113953


ソースコード 拡げる

#include <bits/stdc++.h>
#define x first
#define y second
#define sz(x) ((int)x.size())
using namespace std;

typedef long long LL;
typedef pair<int, int> PII;
const int INF = 0x3f3f3f3f;
const int mod = 1e9 + 7;
const int N = 210 * 210;

void solve() {
	int n, m;
	cin >> n >> m;
	vector<string> s(n);
	vector<vector<int>> a(n, vector<int>(m));
	vector<vector<int>> f(n, vector<int>(m, -1));
	for(auto &str : s) {
		cin >> str;
	}
	auto can = [&](int x, int y) {
		return x >= 0 && x < n && y >= 0 && y < m && s[x][y] != '#';	
	};
	int cnt;
	cin >> cnt;
	while(cnt--) {
		int x, y, z;
		cin >> x >> y >> z;
		a[x - 1][y - 1] = z;
	}
	
	int stx = 0, sty = 0, edx = 0, edy = 0;
	for(int i = 0; i < n; i++) {
		for(int j = 0; j < m; j++) {
			if(s[i][j] == 'S') {
				stx = i, sty = j;
			}
			if(s[i][j] == 'T') {
				edx = i, edy = j;
			}
		}
	}
	
	int dx[] = {-1, 0, 1, 0};
	int dy[] = {0, 1, 0, -1};
	auto bfs = [&] {
		queue<PII> q;
		q.push({stx, sty});
		while(q.size()) {
			auto [x, y] = q.front();
			q.pop();
		
			f[x][y] = max(f[x][y], a[x][y]);
			
			for(int i = 0; i < 4; i++) {
				int c = x + dx[i];
				int d = y + dy[i];
				if(can(c, d) && f[c][d] < f[x][y] - 1) {
					f[c][d] = f[x][y] - 1;
					q.push({c, d});
				}
			}
		}
	};
	bfs();
	cout << (f[edx][edy] >= 0 ? "Yes\n" : "No\n");
}

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0), cout.tie(0);
	int t = 1;
//	cin >> t;	
	while(t--) {
		solve();
	}
	return 0;
}

提出情報

提出日時
問題 D - Medicines on Grid
ユーザ xioachou
言語 C++ 20 (gcc 12.2)
得点 425
コード長 1525 Byte
結果 AC
実行時間 131 ms
メモリ 4020 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 425 / 425
結果
AC × 3
AC × 53
セット名 テストケース
Sample example0.txt, example1.txt, example2.txt
All example0.txt, example1.txt, example2.txt, test_00.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt, test_45.txt, test_46.txt, test_47.txt, test_48.txt, test_49.txt
ケース名 結果 実行時間 メモリ
example0.txt AC 1 ms 3516 KiB
example1.txt AC 1 ms 3512 KiB
example2.txt AC 1 ms 3456 KiB
test_00.txt AC 2 ms 3840 KiB
test_01.txt AC 1 ms 3828 KiB
test_02.txt AC 1 ms 3836 KiB
test_03.txt AC 1 ms 3904 KiB
test_04.txt AC 2 ms 3824 KiB
test_05.txt AC 1 ms 3824 KiB
test_06.txt AC 1 ms 3972 KiB
test_07.txt AC 2 ms 3832 KiB
test_08.txt AC 2 ms 3844 KiB
test_09.txt AC 1 ms 3980 KiB
test_10.txt AC 56 ms 3908 KiB
test_11.txt AC 131 ms 4004 KiB
test_12.txt AC 4 ms 3820 KiB
test_13.txt AC 4 ms 3860 KiB
test_14.txt AC 1 ms 3820 KiB
test_15.txt AC 4 ms 4020 KiB
test_16.txt AC 4 ms 3892 KiB
test_17.txt AC 4 ms 3888 KiB
test_18.txt AC 3 ms 3832 KiB
test_19.txt AC 4 ms 3896 KiB
test_20.txt AC 3 ms 3792 KiB
test_21.txt AC 4 ms 3832 KiB
test_22.txt AC 4 ms 3800 KiB
test_23.txt AC 4 ms 3776 KiB
test_24.txt AC 2 ms 3832 KiB
test_25.txt AC 3 ms 3984 KiB
test_26.txt AC 5 ms 3804 KiB
test_27.txt AC 3 ms 3900 KiB
test_28.txt AC 3 ms 3892 KiB
test_29.txt AC 4 ms 3896 KiB
test_30.txt AC 5 ms 3972 KiB
test_31.txt AC 5 ms 3832 KiB
test_32.txt AC 1 ms 3908 KiB
test_33.txt AC 1 ms 3976 KiB
test_34.txt AC 1 ms 3888 KiB
test_35.txt AC 1 ms 3972 KiB
test_36.txt AC 1 ms 3900 KiB
test_37.txt AC 1 ms 3888 KiB
test_38.txt AC 2 ms 3792 KiB
test_39.txt AC 2 ms 3840 KiB
test_40.txt AC 2 ms 3828 KiB
test_41.txt AC 2 ms 3900 KiB
test_42.txt AC 2 ms 3980 KiB
test_43.txt AC 2 ms 3820 KiB
test_44.txt AC 2 ms 3904 KiB
test_45.txt AC 1 ms 3904 KiB
test_46.txt AC 1 ms 3908 KiB
test_47.txt AC 2 ms 3896 KiB
test_48.txt AC 2 ms 3976 KiB
test_49.txt AC 1 ms 3412 KiB