Submission #52088488
Source Code Expand
/**
* @the_hyp0cr1t3
* 06.04.2024 17:42
**/
#include <bits/stdc++.h>
const std::pair<int, int> dirs[] = {{-1, 0}, {0, -1}, {1, 0}, {0, 1}};
int main() {
std::cin.tie(nullptr)->sync_with_stdio(false);
int n, m;
std::cin >> n >> m;
std::vector<std::string> a(n);
for (auto &x : a)
std::cin >> x;
int sx, sy, tx, ty;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
if (a[i][j] == 'S')
sx = i, sy = j;
if (a[i][j] == 'T')
tx = i, ty = j;
}
}
auto bfs = [&](int rx, int ry) {
std::vector d(n, std::vector<int>(m, -1));
d[rx][ry] = 0;
auto valid = [&](int x, int y) {
return 0 <= x and x < n and 0 <= y and y < m and a[x][y] != '#';
};
std::vector<std::pair<int, int>> q;
q.emplace_back(rx, ry);
for (int i = 0; i < q.size(); i++) {
auto [ux, uy] = q[i];
for (auto [dx, dy] : dirs) {
int vx = ux + dx, vy = uy + dy;
if (valid(vx, vy) and d[vx][vy] == -1) {
d[vx][vy] = d[ux][uy] + 1;
q.emplace_back(vx, vy);
}
}
}
return d;
};
int start = -1;
int q;
std::cin >> q;
std::vector<std::array<int, 3>> p(q);
for (int it = 0; auto &[i, j, e] : p) {
std::cin >> i >> j >> e;
--i, --j;
if (i == sx and j == sy)
start = it;
it++;
}
p.push_back({tx, ty, 0});
q++;
if (start == -1) {
std::cout << "No" << '\n';
return 0;
}
std::swap(p[0], p[start]);
std::vector<std::vector<int>> g(q);
for (int i = 0; i < q; i++) {
auto [x, y, e] = p[i];
auto d = bfs(x, y);
for (int j = 0; j < q; j++) {
auto [nx, ny, ne] = p[j];
if (~d[nx][ny] and d[nx][ny] <= e)
g[i].push_back(j);
}
}
std::vector<int> vis(q);
auto dfs = [&](auto &&self, int u) -> void {
vis[u] = true;
for (auto v : g[u])
if (!vis[v]) self(self, v);
};
dfs(dfs, 0);
std::cout << (vis[q - 1] ? "Yes" : "No") << '\n';
}
Submission Info
Submission Time
2024-04-06 21:35:40+0900
Task
D - Medicines on Grid
User
the_hyp0cr1t3
Language
C++ 20 (gcc 12.2)
Score
425
Code Size
2342 Byte
Status
AC
Exec Time
237 ms
Memory
4396 KiB
Compile Error
Main.cpp: In lambda function:
Main.cpp:38:27: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<std::pair<int, int> >::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
38 | for (int i = 0; i < q.size(); i++) {
| ~~^~~~~~~~~~
Main.cpp: In function ‘int main()’:
Main.cpp:62:16: warning: ‘ty’ may be used uninitialized [-Wmaybe-uninitialized]
62 | p.push_back({tx, ty, 0});
| ~~~~~~~~~~~^~~~~~~~~~~~~
Main.cpp:18:21: note: ‘ty’ was declared here
18 | int sx, sy, tx, ty;
| ^~
Main.cpp:62:16: warning: ‘tx’ may be used uninitialized [-Wmaybe-uninitialized]
62 | p.push_back({tx, ty, 0});
| ~~~~~~~~~~~^~~~~~~~~~~~~
Main.cpp:18:17: note: ‘tx’ was declared here
18 | int sx, sy, tx, ty;
| ^~
Main.cpp:58:21: warning: ‘sy’ may be used uninitialized [-Wmaybe-uninitialized]
58 | if (i == sx and j == sy)
| ~~~~~~~~^~~~~~~~~~~
Main.cpp:18:13: note: ‘sy’ was declared here
18 | int sx, sy, tx, ty;
| ^~
Main.cpp:58:9: warning: ‘sx’ may be used uninitialized [-Wmaybe-uninitialized]
58 | if (i == sx and j == sy)
| ^~
Main.cpp:18:9: note: ‘sx’ was declared here
18 | int sx, sy, tx, ty;
| ^~
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
425 / 425
Status
Set Name
Test Cases
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
Case Name
Status
Exec Time
Memory
example0.txt
AC
1 ms
3508 KiB
example1.txt
AC
1 ms
3504 KiB
example2.txt
AC
1 ms
3640 KiB
test_00.txt
AC
46 ms
3888 KiB
test_01.txt
AC
22 ms
3864 KiB
test_02.txt
AC
41 ms
3896 KiB
test_03.txt
AC
64 ms
3904 KiB
test_04.txt
AC
30 ms
3828 KiB
test_05.txt
AC
26 ms
3820 KiB
test_06.txt
AC
42 ms
3900 KiB
test_07.txt
AC
77 ms
4044 KiB
test_08.txt
AC
52 ms
3892 KiB
test_09.txt
AC
45 ms
3748 KiB
test_10.txt
AC
53 ms
4200 KiB
test_11.txt
AC
116 ms
4396 KiB
test_12.txt
AC
206 ms
3964 KiB
test_13.txt
AC
134 ms
3864 KiB
test_14.txt
AC
137 ms
3784 KiB
test_15.txt
AC
110 ms
3900 KiB
test_16.txt
AC
81 ms
3900 KiB
test_17.txt
AC
132 ms
4028 KiB
test_18.txt
AC
197 ms
3840 KiB
test_19.txt
AC
34 ms
3876 KiB
test_20.txt
AC
237 ms
3948 KiB
test_21.txt
AC
125 ms
3804 KiB
test_22.txt
AC
142 ms
3912 KiB
test_23.txt
AC
219 ms
4116 KiB
test_24.txt
AC
45 ms
3940 KiB
test_25.txt
AC
10 ms
4072 KiB
test_26.txt
AC
75 ms
3852 KiB
test_27.txt
AC
113 ms
4288 KiB
test_28.txt
AC
109 ms
3856 KiB
test_29.txt
AC
69 ms
4140 KiB
test_30.txt
AC
199 ms
4044 KiB
test_31.txt
AC
66 ms
4028 KiB
test_32.txt
AC
1 ms
3696 KiB
test_33.txt
AC
1 ms
3496 KiB
test_34.txt
AC
1 ms
3436 KiB
test_35.txt
AC
1 ms
3508 KiB
test_36.txt
AC
1 ms
3556 KiB
test_37.txt
AC
2 ms
3868 KiB
test_38.txt
AC
2 ms
3932 KiB
test_39.txt
AC
2 ms
3932 KiB
test_40.txt
AC
2 ms
3872 KiB
test_41.txt
AC
2 ms
3740 KiB
test_42.txt
AC
2 ms
3832 KiB
test_43.txt
AC
2 ms
3848 KiB
test_44.txt
AC
2 ms
3804 KiB
test_45.txt
AC
2 ms
3868 KiB
test_46.txt
AC
1 ms
3864 KiB
test_47.txt
AC
2 ms
3760 KiB
test_48.txt
AC
2 ms
3792 KiB
test_49.txt
AC
1 ms
3588 KiB